正则表达式 特殊符号系列 通配符系列
1.1 重定向符號
輸出重定向 先清空文件,追加
追加輸出重定向 追加
< 輸入重定向 與 xargs tr
<< 追加輸入重定向
cat 向一個文件追加多行。
cat >>/oldboy/alex.txt<<EOF
Love me, love my dog.
Love Li, love li's dog.
EOF
1.2 表示位置的
.(點) 當前目錄
.. 當前目錄上一級目錄
~ 當前用戶的家目錄
1.3 特殊符號
注釋 root用戶的命令提示符
$ 取變量的內容(命令行) 取某一列(awk) 普通用戶的命令提示符
! 查找最近一次使用過的命令然后執行 find排除/取反 awk取反 vim強制
history |grep awk
| 管道
; 分割多條命令。
1.4 引號系列
`` $()
'' 所見即所得,原封不動顯示出來
"" 解析特殊符號
1.5 簡單判斷
&& 前一個命令執行成功 ,執行后面的命令
ifdown eth0 && ifup eth0
|| 前一個命令執行失敗,執行后面的命令
ls /alex || echo 目錄不存在
通配符
2.1 什么作用?
方便大家查找出文件的(文件名)。
Linux大部分命令都支持。
.txt
.log
2.2 常見的通配符
2.2.1 所有 任何東西
以.txt結尾 .txt
以.log結尾 *.log
系統中以ls開頭的文件。
find / -type f -name "ls*"
找出系統中文件名包含oldboy的文件。
find / -type f -name "oldboy"
2.2.2 {} 生成序列
echo {1..10}
echo {10..1}
echo {01..10}
echo {01..100}
echo {a..c}
echo {a..z}
echo {A..Z}
[root@oldboyedu42-lnb ~]# echo stu{01..10}
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10
[root@oldboyedu42-lnb ~]# echo 20{01..10}
2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
2.3 通過{}
[root@oldboyedu42-lnb ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@oldboyedu42-lnb ~]# echo {a c f}
{a c f}
[root@oldboyedu42-lnb ~]# echo {a,c,f}
a c f
[root@oldboyedu42-lnb ~]# echo A{B,C}
AB AC
[root@oldboyedu42-lnb ~]# echo A{,C}
A AC
[root@oldboyedu42-lnb ~]# echo oldboy.txt{,.bak}
oldboy.txt oldboy.txt.bak
[root@oldboyedu42-lnb ~]# touch oldboy.txt
[root@oldboyedu42-lnb ~]# cp oldboy.txt{,.bak}
cp: overwrite `oldboy.txt.bak'? y
[root@oldboyedu42-lnb ~]# ls -l oldboy.txt
[root@oldboyedu42-lnb ~]# ls -l oldboy.txt
-rw-r--r-- 3 root root 0 Nov 11 23:50 oldboy.txt
-rw-r--r--. 1 root root 0 Nov 11 23:50 oldboy.txt.bak
-rw-r--r-- 3 root root 0 Nov 11 23:50 oldboy.txt-hard
[root@oldboyedu42-lnb ~]#
[root@oldboyedu42-lnb ~]# #cp oldboy.txt{,.bak}
[root@oldboyedu42-lnb ~]# echo oldboy.txt{,.bak}
oldboy.txt oldboy.txt.bak
[root@oldboyedu42-lnb ~]# echo A{,C}
A AC
2.4 通配符小結
1)查找文件
2)* {}
如何記住不忘記
1.看-思考-你認為你會了
2.命令-多敲
3.命令和知識點 流程圖-繪制思維導圖(processon.com + xmind)
4.繪圖===回顧===整理
5.先走通路,然后變通
6.說出來,不會(先問問別人,然后再給別人說)
是否會了-總結:
1.繪圖
2.說出來
正則表達式 RE regular expression
3.1 什么是正則 為何用它?
你可以通過什么方法選出這里面的×××號碼。
440304199604012792
130528197108126121
3605sss98304033896
342923198310042132
1404ddddddddd5694X
61242619860416291X
5002xxxxxx04279521
330900199806382320
654126197703092303
131127197105115662
數字與X(在最后一位)
通過符號匹配查找出各種文字。
正則表達式通過特殊符號 ^ $ [] . * 表示各種各樣的文字。
方便我們處理文本(日志)。
3.2 誰可以使用正則
三劍客正則(grep sed awk )
python java
3.3 正則表達式與通配符區別
正則---在文件中進行過濾(查找文件內容) 三劍客支持
通配符-找出文件(文件名) 大部分命令都可以使用
3.4 使用正則注意事項:
3.4.1 正則默認是按照行為單位處理。
3.4.2 一定要注意不要使用中文符號。
. ''""^ `` ( ) {} [] <>
?!啊薄ぁ?#xff08; ){}【】《》
3.4.3 給grep/egrep加上別名
cat >>/etc/profile<<EOF
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
EOF
source /etc/profile
查看是否更改:grep 3306 /etc/services
3.5 正則分類
基礎正則: ^ $ . * []
擴展正則: + | () {} ?
3.6 環境準備
/oldboy/re.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
3.7 基礎正則-BRE basic regular expression
3.7.1 ^ ^m 表示以....開頭的行
[root@oldboyedu42-lnb oldboy]# grep '^m' re.txt
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
my god ,i am not oldbey,but OLDBOY!
3.7.2 m$ 表示以....結尾的行
[root@oldboyedu42-lnb oldboy]# cat -A re.txt
I am oldboy teacher!$
I teach linux.$
$
I like badminton ball ,billiard ball and chinese chess!$
my blog is http://oldboy.blog.51cto.com $ #注意此處結尾是空格不是m
$
our size is http://blog.oldboyedu.com $ #注意此處結尾是空格不是m
$
my qq is 49000448$
$
not 4900000448.$
my god ,i am not oldbey,but OLDBOY!$
3.8 刪除結尾的空格
[root@oldboyedu42-lnb oldboy]# vim re.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
3.9 檢查是否修改成功
[root@oldboyedu42-lnb oldboy]# cat -A re.txt
I am oldboy teacher!$
I teach linux.$
$
I like badminton ball ,billiard ball and chinese chess!$
my blog is http://oldboy.blog.51cto.com$
$
our size is http://blog.oldboyedu.com$
$
my qq is 49000448$
$
not 4900000448.$
my god ,i am not oldbey,but OLDBOY!$
[root@oldboyedu42-lnb oldboy]#
[root@oldboyedu42-lnb oldboy]# grep 'm$' re.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
3.10 cat -A #顯示出文件中所有的符號 $這一行的結尾
[root@oldboyedu42-lnb oldboy]# grep ' ' re.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
3.10.1 ^$ 空行 這一行里面什么都沒有
[root@oldboyedu42-lnb oldboy]# grep -n '^$' re.txt
3:
6:
8:
10:
練習題:排查文件中的空行
[root@oldboyedu42-lnb oldboy]# grep -v '^$' re.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
4.1 . 任意一個字符 不會匹配空行
#grep -o '.' re.txt
#-o 顯示grep的執行過程,grep每一次找出什么
grep -o '.' re.txt
#-o 顯示grep的執行過程,grep每一次找出什么
#-o 的結果中 每一行表示 grep每次找出什么
[root@oldboyedu42-lnb oldboy]# grep '0' re.txt
my qq is 49000448
not 4900000448.
[root@oldboyedu42-lnb oldboy]# grep -o '0' re.txt
0
0
0
0
0
0
0
0
[root@oldboyedu42-lnb oldboy]# grep '00' re.txt
my qq is 49000448
not 4900000448.
[root@oldboyedu42-lnb oldboy]# grep -o '00' re.txt
00
00
00
4.1.1 \ 撬棍 轉義字符 去掉符號特殊含義 脫掉馬甲,打回原形
顯示出文件中 以.結尾的行?
[root@oldboyedu42-lnb oldboy]# grep '.$' re.txt
I teach linux.
not 4900000448.
撬棍系列 轉義字符系列
\n ====== 回車
4.1.2 * 前一個字符連續出現0次或0次以上
[root@oldboyedu42-lnb oldboy]# grep '0*' re.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu42-lnb oldboy]#
[root@oldboyedu42-lnb oldboy]# grep '0*' re.txt -o
000
00000
4.1.3 連續出現
4.1.4 正則表示連續出現的時候,會盡可能的匹配(吃)更多的符號 貪婪性
[root@oldboyedu42-lnb oldboy]# #0 表示0連續出現0次
[root@oldboyedu42-lnb oldboy]# #0 表示0連續出現1次及1次以上
[root@oldboyedu42-lnb oldboy]# #0
[root@oldboyedu42-lnb oldboy]# #000
[root@oldboyedu42-lnb oldboy]# #0000000
[root@oldboyedu42-lnb oldboy]# #0 表示0連續出現0次
[root@oldboyedu42-lnb oldboy]# #'0' 只出現0次的時候 ====== ''
[root@oldboyedu42-lnb oldboy]# #會把整個文件的內容都顯示出來
[root@oldboyedu42-lnb oldboy]# grep '' re.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
4.2 小結正則之*:
1]] 貪婪性
2]] 連續出現
4.3 .* 所有 任何符號
#在正則中表示連續出現 表示所有 貪婪性
4.3.1 找出文件中以字母m開頭的行 并且 以m結尾的行
grep '^m.*m$' re.txt
[root@oldboyedu42-lnb oldboy]# grep '^m' re.txt
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu42-lnb oldboy]# grep '^m' re.txt |grep 'm$'
my blog is http://oldboy.blog.51cto.com
[root@oldboyedu42-lnb oldboy]# grep '^m.*m$' re.txt
my blog is http://oldboy.blog.51cto.com
[root@oldboyedu42-lnb oldboy]# grep '^.*m$' re.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
[root@oldboyedu42-lnb oldboy]# grep 'm$' re.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
[root@oldboyedu-42mvp ~]# grep '.*m' re.txt
4.4 [] [abc] 表示一個整體,a或b或c任意一個字符
[root@oldboyedu42-lnb oldboy]# grep '[abc]' re.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my god ,i am not oldbey,but OLDBOY!
grep '[abc]' re.txt -o
[root@oldboyedu42-lnb oldboy]# grep '[a-z]' re.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu42-lnb oldboy]# grep '[A-Z]' re.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu42-lnb oldboy]# grep '[a-zA-Z]' re.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
4.5 #找出文件中以m或n開頭的行
[root@oldboyedu42-lnb oldboy]# #第1個里程碑-m或n
[root@oldboyedu42-lnb oldboy]# grep '[mn]' re.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu42-lnb oldboy]# #第2個里程碑-以m或n開頭的行
[root@oldboyedu42-lnb oldboy]# grep '^[mn]' re.txt
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
grep '[a-z]' re.txt
grep '[A-Z]' re.txt
grep '[0-9]' re.txt
轉載于:https://blog.51cto.com/13859480/2152895
總結
以上是生活随笔為你收集整理的正则表达式 特殊符号系列 通配符系列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rdlc 分页操作和分页统计
- 下一篇: View.Post () 的身世大揭秘