1. 程式人生 > 其它 >三劍客+基礎正則 小記

三劍客+基礎正則 小記

三劍客grep+sed+awk,配合正則又愛又恨的存在~~~

話不多少,開記~~~

grep #過濾 文字搜尋工具,按照行進行處理

[root@web01 ~]# cat 2.txt root oldboy good stundent oldboy oldboy oldgirl root dog cat oldboy ROOT old oldboyoldboy [root@web01 ~]# grep 'oldboy' 2.txt #過濾出oldboy及包含oldboy的行 root oldboy good stundent oldboy oldboy oldboy oldboyoldboy oldboyoldboy test [root@web01 ~]# grep -w 'oldboy' 2.txt # 精確匹配,只匹配oldboy 包含關係不匹配 root oldboy good stundent oldboy oldboy oldboy [root@web01 ~]# grep -v 'oldboy' 2.txt # 排除包含oldboy的行 取反 oldgirl root dog cat ROOT old [root@web01 ~]# grep -n 'oldboy' 2.txt # 顯示過濾內容的原行號 1:root oldboy good 2:stundent oldboy 3:oldboy 6:oldboy 9:oldboyoldboy 10:oldboyoldboy test [root@web01 ~]# grep -c 'oldboy' 2.txt # 只顯示過濾內容的總計行數 6 [root@web01 ~]# grep -i 'root' 2.txt # 不區分大小寫 root oldboy good oldgirl root ROOT

總結:grep 引數選項

-v #對過濾到的內容取反 -n #顯示過濾到內容的行號 -i #不區分大小寫 -w #按照單詞過濾 -P #支援tab鍵 -E #擴充套件正則 ==egrep -r #遞迴查詢,查詢當前目錄及目錄下面的所有檔案 -A #顯示匹配行及後面多少行 -B #顯示匹配行的前面多少行 -C #顯示匹配行的前後多少行

三劍客都支援正則匹配:

1.過濾以m開頭的行:

2.過濾以m結尾的行(過濾以什麼結尾時注意空格,cat -A檢視是否有空格)

[root@web01~]#grep 'm $' oldboy.txt my blog is http: blog.51cto.com our site is http:www.lizhenya.com 3.針對空行進行取反【空行:^$ 】 [root@web01~]#grep '^$' oldboy.txt [root@web01~]#grep -v '^$' oldboy.txt 4.排除空行和#的行 #用到或者, 使用的是擴充套件正則 [root@oldboy~]#egrep -v '^$|#' oldboy.txt 5.匹配任意一個字元 不包含空行 [root@oldboy~]#grep '.' oldboy.txt -o 6. .* 匹配所有 #任何符號,包括空行 [root@oldboy~]#grep '.*' oldboy.txt -o 7. 匹配以 . 結尾的行 [root@oldboy~]#egrep '\.$' oldboy.txt # . 有特殊含義,撬棍取消其特殊含義 8. *匹配前一個字元出現0次或0次以上 [root@oldboy~]#grep '0*' oldboy.txt # 0這個數字出現0次或0次以

9. 分別匹配a b c

[root@oldboy~]#grep '[abc]' oldboy.txt [root@oldboy~]#grep '[0-9]' oldboy.txt -o