9.1 正則介紹_grep上 9.2 grep中 9.3 grep下

9.1 正則介紹_grep上/ 9.2 grep中/ 9.3 grep下

正則就是一串有規律的字符串shell

•掌握好正則對於編寫shell腳本有很大幫助編程

•各類編程語言中都有正則,原理是同樣的編程語言

•本章將要學習grep/egrep、sed、awk學習

grep [-cinvABC] 'word' filenameci

-c 統計匹配的行數字符串

-w 匹配一個單詞,更精準 // grep -w 'root' /etc/passwd 只會匹配精準符合root的行, 如文件裏是rooto 這種則不會匹配it

-i 不區分大小寫test

-n 顯示行號awk

-v 取反原理

-r 針對目錄操做, 查找目錄和子目錄中符合條件的文件(遍歷目錄) grep -r /etc/

-A 後面跟數字,過濾出符合要求的行以及下面n行

-B 同上,過濾出符合要求的行以及上面n行

-C 同上,同時過濾出符合要求的行以及上下各n行

-P 非貪婪模式 ,例: str="123abc0axc456" echo $str | grep -P 'a.?c' echo aaabbbaaabbbbcccbbbb |grep -P 'a.?b'

grep/egrep示例

grep -n 'root' /etc/passwd

grep -nv 'nologin' /etc/passwd

grep '[0-9]' /etc/inittab 符合0-9任意一個數字

grep -v '[0-9]' /etc/inittab

grep -v '^#' /etc/inittab ^# 符合以#號開頭

grep -v '^#' /etc/inittab|grep -v '^$' 不以#號開頭的行 ^$ 空行

grep '^[^a-zA-Z]' test.txt 非a-zA-Z 開頭的行(匹配以數字開頭的行)

grep 'r.o' test.txt .表示1個任意字符

grep 'oo*' test.txt *號左邊的字符匹配0次到屢次

grep '.' test.txt ’.’ 全部字符都會匹配

grep 'o{2}' /etc/passwd o出現2次

egrep 'o{2}' /etc/passwd o出現2次

egrep 'o{0,3}' /etc/passwd o{0,3}’ o出現 0-3次範圍

egrep 'o+' /etc/passwd +號前面字符1次或多

egrep 'oo?' /etc/passwd ?前面字符出現0或1次

egrep 'root|nologin' /etc/passwd 豎線 或者的意思

egrep '(oo){2}' /etc/passwd ()表明1個總體, oo出現2次

如下匹配序用grep -E 或者 erep 可不用脫意符號

‘o{2}’ o出現2次

‘o{0,3}’ o出現 0-3次範圍

‘(oo){2}’ ()表明1個總體, oo出現2次

‘o+’ +號前面字符1次或多

‘oo?’ ?前面字符出現0或1次

‘root|nologin’ 豎線 或者的意思

相關文章
相關標籤/搜索