標籤:expr name util 表達 括弧 number 數字 roo 混淆
1.grep [-cinvABC] ‘word‘ filename
-c :列印符合要求的行數
--color:顯示顏色
-i :忽略大小寫(ignore)
-n :在輸出符合要求的行的同時連同行號一起輸出(number)
-v :列印不符合要求的行(取反)
-A :後跟一個數字(有無空格都可以),例如 –A2則表示列印符合要求的行以及下面兩行(after)
-B :後跟一個數字,例如 –B2 則表示列印符合要求的行以及上面兩行(before)
-C :後跟一個數字,例如 –C2 則表示列印符合要求的行以及上下各兩行
-E :允許使用拓展Regex(extended regular expression)
-r :遍曆
注意:"." 表示任意一個字元 eg: grep -E ‘ro.t‘ 1.txt= egrep ‘ro.t‘ 1.txt,可以過濾出root
".*"表示零個或多個任一字元, eg: grep -E ‘ro.*t‘ 1.txt= egrep ‘ro.*t‘ 1.txt,可以過濾出rot,rosadat,roo...t
"?"表示零個或一個跟在他前面的字元, eg: grep -E ‘ro?t‘ 1.txt = egrep ‘ro?t‘ 1.txt ,"o?"可以過濾出rt,rot (這時你想到.*是什麼意思了嗎,手動滑稽)
"+"表示一個或多個根子他前面的字元, eg: grep -E ‘ro+t‘ 1.txt = egrep ‘ro+t‘ 1.txt ,"o+"可以過濾rot,root,rooo...t
也可以這樣用:...(oo+) 1.txt ; ...(oo){1,2} 1.txt,{}內為數字,表示重複次數
[^a]:[]括弧內的^表示除了..也就是取反、非的意思
2.sed (尋找替換)
尋找:
sed -n ‘np‘ 1.txt 列出第幾行
-n :取消預設輸出
np :n為第幾行,列出多行可以‘1,10p‘,表示為列出1-10行,‘5-$‘列出第五行到行尾
sed -n ‘/root/p‘ 1.txt 列出包含root的行
多行為
sed -n -e ‘/root/p‘ -e ‘np‘ 1.txt
-e :實現多個行為
刪除
sed ‘1,5d‘ 刪除1-5行
替換
sed ‘s///g‘ 替換(這個類似vim), eg: sed -r ‘5,$s#([^:]+)(:.*+:)([^:]+$)#\3\2\1#‘ 1.txt,表示為替換第五行到最後一行每一行的首尾單詞
-r :允許使用拓展Regex(extended regular expression)
注意:由於\符號在涉及到路徑時,很容易混淆,因此可以用#,@來替代
3.awk
【CentOS】Regex