awk的使用說明
閱讀相關資料整理一下理解中的awk的使用說明
命令行的方式調用awk
awk [-F field-separator] 'commands' filename
其中 [-F field-separator] :分隔符可選
'commands':要執行的命令
filename:待處理的文件名
入門實例
先創建一個test文件,文件內容爲:
awk '{print $1,$2}' test
輸出爲
1 hello
2 hi
3 yes
4 good
5 no
6 lucky
awk工作流程:讀入有’\n’換行符分割的一條記錄,然後將記錄按指定的域分隔符劃分域,填充域,$ 0則表示所有域, $ 1表示第一個域,$n表示第n個域。
if語句的使用
必須用在{}中,且比較內容用()擴起來
awk '{if($4>0)print$3}' test
輸出爲:(表示輸出第四列大於0的行的第三列的名稱)
小明
小李
小明
小小
AWK 包含兩種特殊的模式:BEGIN 和 END
BEGIN模式指定了處理文本之前需要執行的操作;
END模式指定了處理完所有行之後所需要執行的操作。
awk 'BEGIN{sum=0}{if($4>0){sum+=$1;print sum}}' test
輸出爲:(這個是每碰到一個第四列大於0的行,sum就會加上該行的第一列的值並輸出)
1
3
7
13
awk 'BEGIN{sum=0}{if($4>0){sum+=$1}}END{print sum}' test
輸出爲:(這個是每碰到一個第四列大於0的行,sum就會加上該行的第一列的值,最後會輸出最後的sum值)
13