`##grep:用於過濾文字內容
egrep == grep -E
grep 常用選項
選項 |
作用 |
grep –color |
自動使用顏色標示匹配的關鍵詞 |
grep -n |
匹配出來的行前面顯示行號 |
grep -v |
對匹配的內容取反,顯示未匹配行 |
grep -c |
顯示匹配的行數 |
grep -r |
後面加目錄,遍歷一個目錄,將目錄中檔案裡匹配的行都列印出來 |
sed:可以過濾、查詢和替換
sed 常用選項
選項 |
作用 |
sed -n |
不列印未指定的行 |
sed -r |
脫義,當正則裡有特殊字元需要用 \ 進行轉義時 |
sed -i |
會把更改儲存到檔案中,實際改變檔案內容,慎用 |
sed -e |
可以進行多次匹配,若匹配的關鍵詞在同一行會重複列印 |
例項:
語句 |
作用 |
sed -n '10'p 1.txt |
p表示列印;-n:如果不加,則會列印全部內容,並把指定的那行再列印一次 |
sed -n '10,20'p 1.txt |
表示列印第10~20行的內容 |
sed -n '30,$'p 1.txt |
表示列印30行到末行的內容 |
sed -nr '/o{2}/'p 1.txt |
等價於 sed -n ‘/o\{2\}/’p 1.txt |
sed '/fish/'d 1.txt |
將含有fish的行刪除不顯示 |
sed '1,10s/login/LOGIN/g 1.txt |
將1~10行中的login替換成LOGIN,語法類似於vim中的替換 |
sed 's/login/LOGIN/g 1.txt |
全域性替換,s=1,$s |
sed -r 's#(^[a-z]+)(:.\*:)(.*$)#\3\2\1#g' 1.txt |
替換位置 |
awk:可以分段、邏輯判斷、數學運算
awk [-F fs] [-v var=value] [-f prog-file | 'program text'] [file...]
其中-F引數用於預先指定前面提到的欄位分隔符(還有其他指定欄位的方式) ,-v用於預先為awk程式指定變數,-f引數用於指定awk命令要執行的程式檔案,或者在不加-f引數的情況下直接將程式語句放在這裡,最後為awk需要處理的文字輸入,且可以同時輸入多個文字檔案。
awk 常用選項
選項 |
作用 |
awk -F ‘:’ |
指定以’:’為分隔符 |
awk –posix |
讓awk支援正則中的{} |
NR |
表示行數,awk內建變數 |
NF |
表示每行段數,awk內建變數 |
例項:
語句 |
作用 |
awk '/keyword/' 1.txt |
匹配keyword並輸出 |
awk -F ':' '$1~/root/' 1.txt |
以:為分隔符分成若干段,用第1段匹配root並輸出 |
awd -F ':' 'OFS="#" /root/ 1.txt |
OFS用來指定輸出時每段之間的分隔符 |