9.1 正則介紹grep 上
以 nologin爲關鍵字過濾passwd
-v取反,除了nologin的行數
參數-A
參數 -B
-C
9.2 grep介紹中
grep '[0-9]' /etc/passwd
顯示passwd內的數字
grep -v '[0-9]' /etc/passwd
顯示除了帶數字的行
grep -v '^#' /etc/sos.conf
顯示不以#號開頭的行。'^#':以#開頭
grep '^[^a-zA-Z]' test.txt
顯示不以字母開頭的行 ^在中括號外表示以什麼什麼開頭。在中括號內表示括號內容取反
9.3 grep下
單引號的.表示任意一個字符。
單引號的*表示重複星號左邊的字符任意次。
單引號的.*表示任意長度字符。
grep和egrep的關係:
使用{} + ? |這些特殊符號時。grep需要在這些符號前加脫義符\
而egrep則不需要。egrep = grep -E
egrep 'o{2}' /etc/passwd
過濾o出現兩次的行
egrep 'o+' /etc/passwd
過濾o出現1-n次的行。
egrep 'oo?' /etc/passwd
過濾o”o0-1“次出現的行
egrep 'root|nologin" /etc/passwd
過濾帶有root或者nologin的行
9.4 sed 上
匹配功能:
sed -n '/root/'p test.txt
-n不顯示無關內容 p把結果輸出到屏幕
同grep一樣支持*和.的通配。
使用和egrep一樣的通配符時,加參數-r
打印指定的行
-e以多種條件匹配
9.5 sed下
參數大寫I不區分大小寫。
刪除文件內容
9.6 awk工具 上
head -n2 test.txt| awk -F ':' '{print $1}'
以:爲分隔符 顯示每行的第一段
head -n2 test.txt| awk -F ':' '{print $1}'
顯示所有的段
awk -F ':' {print $1"#"$2"#"$3"#"$4}
顯示1234段並以#分隔
awk '/oo/' test.txt
顯示包含oo的行
awk -F ':' '$1 ~ /oo/' test.txt
以:爲分隔符,顯示第一段包含oo的行
awk -F ':' '/root/ {print $1,$3} /test/ {print $1$3}' test.txt
以:爲分隔符,顯示包含root的行中的第一段和第三段,還有包含test行中的第一段和第三段。
數學運算表達式:
==等於 !=不等於 >=大於等於 <=小於等於
數字帶雙引號則以字符處理
9.7 awk工具 下