awk和sed同樣是流式編輯器,它也是針對文檔中的行來操做的,一行一行的去執行。awk比sed更增強大,它能作到sed能作到的,一樣也能作到sed不能作到的。awk工具實際上是很複雜的,可是學那麼複雜沒有必要,只要能處理平常管理工做中的問題便可。bash
1.截取文檔中的某個命令編輯器
-F選項的做用是指定分隔符。若是不加-F選項,則以空格或者TAB爲分隔符。print爲打印的動做,用來打印某個字段。$1爲第1個字段,$2爲第2個字段,$0表示整行工具
2.匹配字符或者字符串文檔
3.條件操做符字符串
awk中是能夠用邏輯符號判斷的,好比 ‘==’ 就是等於,也能夠理解爲 ‘精確匹配’ 另外也有 >, ‘>=, ‘<, ‘<=, ‘!= 等等,值得注意的是,在和數字比較時,若把比較的數字用雙引號引發來後,那麼awk不會認爲是數字,而認爲是字符,不加雙引號則認爲是數字。數學
另外還可使用 && 和 || 表示 「而且」 和 「或者」 的意思。test
4.awk的內置變量awk
awk經常使用的變量有:變量
NF :用分隔符分隔後一共有多少段sed
NR :行數
NF 是多少段,而$NF是最後一段的值, 而NR則是行號。
5.awk中的數學運算
awk能夠把段值更改:
習題
答案
1. awk '{print $0}' test.txt 2. awk '/bash/' test.txt 3. awk -F':' '$3=="0"' test.txt 4. awk -F':' '$1=="root"' test.txt |sed 's/root/toor/' 5. awk -F':' '{print $NF}' test.txt 6. awk -F':' 'NR>20' test.txt 7. awk -F':' '$3<$4' test.txt 8. awk -F':' '{print $1"@"$NF}' test.txt 9. awk -F':' '{(sum+=$4)}; END {print sum}' test.txt