Linux三劍客grep/sed/awk

grep/sed/awk被稱爲linux的「三劍客」linux

grep更適合單純的查找或匹配文本;正則表達式

sed更適合編輯匹配到的文本;shell

awk更適合格式化文本,對文本進行較複雜各式處理;json

 

  • Grep

--color=auto 或者 --color:表示對匹配到的文本着色顯示編輯器

-i:在搜索的時候忽略大小寫spa

-n:顯示結果所在行號.net

-c:統計匹配到的行數,注意,是匹配到的總行數,不是匹配到的次數code

-o:只顯示符合條件的字符串,可是不整行顯示,每一個符合條件的字符串單獨顯示一行blog

-v:輸出不帶關鍵字的行(反向查詢,反向匹配)ip

-w:匹配整個單詞,若是是字符串中包含這個單詞,則不做匹配

-Ax:在輸出的時候包含結果所在行以後的指定行數,這裏指以後的x行,A:after

-Bx:在輸出的時候包含結果所在行以前的指定行數,這裏指以前的x行,B:before

-Cx:在輸出的時候包含結果所在行以前和以後的指定行數,這裏指以前和以後的x行,C:context

-e:實現多個選項的匹配,邏輯or關係

-q:靜默模式,不輸出任何信息,當咱們只關心有沒有匹配到,卻不關心匹配到什麼內容時,咱們能夠使用此命令,而後,使用"echo $?"查看是否匹配到,0表示匹配到,1表示沒有匹配到。

-P:表示使用兼容perl的正則引擎。

-E:使用擴展正則表達式,而不是基本正則表達式,在使用"-E"選項時,至關於使用egrep。

 -m 1 匹配到首行記錄後中止

 

http://www.zsythink.net/archives/1733/

 

 

  • Sed

sed 是Stream Editor(字符流編輯器)的縮寫,簡稱流編輯器。

坑1:

eg :sed -i ""  's/$oldday/$today/g'  ${json_path}

shell中若是有$這樣的特殊字符,單引號要換成雙引號。

坑2:

mac環境使用sed修改文件報錯:invalid command code E

eg: sed -i  "s/$oldday/$today/g"  ${json_path}

原來sed -i須要帶一個字符串做爲備份源文件的文件名稱,若是這個字符串長度爲0,則不備份。 

https://blog.csdn.net/fdipzone/article/details/51253955

 

  • awk

  awk  [options] '{pattern + action}' {filenames}

相關文章
相關標籤/搜索