一. 語法
awk '條件1 {動作1} 條件2 {動作2} ...' 文件名
如果條件1符合,執行動作1,如果條件2符合,執行動作2
條件:
一般使用關係表達式作爲條件
x > 10 判斷變量x是否大於10
x >= 10 大於等於
x <= 10 小於等於
動作:
格式化輸出
流程控制語句
注意:之所以使用awk截取命令,主要是cut不能截取以" "或者tab作爲分隔符的字符串,而awk默認的分隔符就是這兩個
二. 實例
1. 輸出第2列和第4列
2. 截取sda5的第五列的磁盤佔用百分數
其中cut是以"%"分割"12%",然後取第一個字段
3. BEGIN,在所有的數據讀取之前執行BEGIN後的動作,然後再處理後面的數據
4. FS內置變量:指定分割符":"
由於awk先讀取第一行,再從第二行開始處理,因此第一行沒有分割
解決辦法,在FS前加入BEGIN,在讀取第一條數據之前,先把分隔符指定,再進行處理
5. END,在所有的數據執行完之後,再執行一個動作
6. 關係運算符
選取成績大於87的學生的名字,不包含Name所在的行,用grep -v反選Name所在的行,否則awk先會讀取第一行的內容,再處理後面的數據