grep命令總結


grep (縮寫來自Globally search a Regular Expression and Print)是一種強大的文本搜索工具,它能使用特定模式匹配(包括正則表達式)搜索文本,並默認輸出匹配行。Unix的grep家族包括grep、egrep和fgrep, egrep和fgrep是grep的擴展,與Windows下命令 findstr 類似。

 

命令格式:  grep string filename

 --color    同—color=auto   高亮顯示匹配到的字符串,也可使用別名alias實現,alias grep=‘grep --color=auto’

-v     --revert-match,反向查詢,即輸出沒有匹配到的字符串

-i      --ignore-case,忽略大小寫

-n     --line-number,在匹配到的內容前顯示行號

-c     --count,匹配到字符串的行數(注意:不是匹配到的次數)

-o      grep默認輸出匹配到字符串所在行的全部內容,-o選項僅顯示匹配到的字符串

      每個匹配到的字符串都會顯示為一行,即若在一行中匹配到n個字符串,會輸出n行字符串(每行一個字符串)(用於統計字符串出現在文本中的次數)

-w      完全匹配整個單詞,不匹配含有字符串的單詞,例如 magic 不匹配會 magical

-a      把二進制文件當做文本處理

-An(after) 顯示匹配字符串及其后n行數據

-Bn(before) 顯示匹配字符串及其前n行數據

-Cn(context) 顯示匹配到的字符串及其前后n行

 

例:

grep 'linux'   test.txt   test2.txt   //從多個文件中查找linux

多文件查詢時,會把文件名在行首輸出,並且加上":"作為標示符。

 

例:

find . -name ".log" | grep -i error | grep -vi "info"

1、使用find -name 來列出所有log文件,重定向給grep

2、使用grep -i 來查找包含error的行

3、使用grep -vi 來查找不包含info的行

 

 

egrep與grep -E

grep 過濾多個條件

錯誤寫法:

netstat -an|grep "ESTABLISHED|WAIT"      //默認grep不支持多條件匹配   

正確寫法:

netstat -an|grep -E "ESTABLISHED|WAIT"    //grep -E 並將條件用""包起來,條件之間用“|”管道符分開

 

grep -E  '123|abc'  filename  // 找出文件(filename)中包含123或者包含abc的行

egrep  '123|abc'  filename    // 用egrep同樣可以實現

awk  '/123|abc/'  filename   // awk 的實現方式

 

與  &         或  |    非  !

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM