grep/sed/awk被稱爲linux的「三劍客」linux
grep更適合單純的查找或匹配文本;正則表達式
sed更適合編輯匹配到的文本;shell
awk更適合格式化文本,對文本進行較複雜各式處理;json
--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 是Stream Editor(字符流編輯器)的縮寫,簡稱流編輯器。
eg :sed -i "" 's/$oldday/$today/g' ${json_path}
shell中若是有$這樣的特殊字符,單引號要換成雙引號。
eg: sed -i "s/$oldday/$today/g" ${json_path}
原來sed -i須要帶一個字符串做爲備份源文件的文件名稱,若是這個字符串長度爲0,則不備份。
https://blog.csdn.net/fdipzone/article/details/51253955
awk [options] '{pattern + action}' {filenames}