一、grep命令介紹 命令格式:grep [-cinvABC] ‘word’ filename,常用選項如下: -c:表示列印符合要求的行數。 -i:表示忽略大小寫。 -n:表示輸出符合要求的行及其行號。 -v:表示列印不符合要求的行。 -A:後面跟一個數字(有無空格都可以),例如-A2表示列印符合 ...
一、grep命令介紹
命令格式:grep [-cinvABC] ‘word’ filename,常用選項如下:
- -c:表示列印符合要求的行數。
- -i:表示忽略大小寫。
- -n:表示輸出符合要求的行及其行號。
- -v:表示列印不符合要求的行。
- -A:後面跟一個數字(有無空格都可以),例如-A2表示列印符合要求的行以及下麵兩行。
- -B:後面跟一個數字,例如-B2表示列印符合要求的行以及上面兩行。
- -C:後面跟一個數字,例如-C2表示列印符合要求的行以及上下各兩行。
二、過濾出帶有某個關鍵詞的行,並輸出行號
說明:前面的數字顯示為綠色,表示行號。
三、過濾出不帶有某個關鍵字的行,並輸出行號
四、過濾出所有包含數字的行
說明:只要有一個數字就算匹配到了。
五、過濾出所有不包含數字的行
說明:只要包含一個數字,就不顯示。
六、過濾掉所有以#開頭的行
說明:這裡面是包含有空行的。
七、過濾掉所有空行和以#開頭的行
在正則表達式中,^表示行的開始,$表示行的結尾,^$表示空行。
如何列印出不以英文字母開頭的行?示例如下:
說明:如果要過濾數字就用[0-9]這樣的形式(當遇到類似[15]的形式時表示只含有1或者5)。如果要過濾數字以及大小寫字母,則要寫成類似[0-9a-zA-Z]的形式。另外,[^字元]表示除[ ]內字元之外的字元。
註意:把^寫到方括弧裡面和外面是有區別的。
八、過濾出任意一個字元和重覆字元
.表示任意一個字元。上例中,r.o表示把r與o之間有一個任意字元的行過濾出來。
*表示零個或多個*前面的字元。上例中,ooo*表示oo、ooo、oooo...或者更多的o。
上例中,.*表示零個或多個任意字元,空行也包含在內,它會把/etc/passwd文件裡面的所有行都匹配到。
九、指定要過濾出的字元出現字數
說明:符號{ },其內部為數字,表示前面的字元要重覆的次數。
註意(劃重點):{ }左右都需要加上轉義字元\。另外,使用“{ }”還可以表示一個範圍,具體格式為{n1,n2},其中n1 < n2,表示重覆n1到n2次前面的字元,n2還可以為空,這時表示大於等於n1次。
十、過濾出一個或多個指定的字元(開始使用egrep命令)
說明:egrep命令使用的是符號+,它表示匹配1個或多個+前面的字元,這個“+”不支持被grep命令直接使用;{ }可以直接被egrep使用,而不用加 \ 轉義。例如:
十一、過濾出零個或一個指定的字元
十二、過濾出字元串1或者字元串2
十三、egrep中( )的使用
說明:這裡用( )表示一個整體,上例中會把包含rooo或者rato的行過濾出來。
另外說明:還可以把( )和其他符號組合在一起,例如: