awk中變量說明:
變量名 | 含義 |
ARGC | 命令行變元個數 |
ARGV | 命令行變元數組 |
FILENAME | 當前輸入文件名 |
FNR | 當前文件中的記錄號 |
FS | 輸入域分隔符,默認爲一個空格 |
RS | 輸入記錄分隔符 |
NF | 當前記錄裏域個數 |
NR | 到目前爲止記錄數 |
OFS | 輸出域分隔符 |
ORS | 輸出記錄分隔符 |
1.查看某個域的情況
統計某個列的不重複個數,-F指定列分隔符
awk -F '\t' '{print $1}' |sort|uniq|wc -l
awk '{print NR,NF,$1,$NF,}' file 顯示文件file的當前記錄號、域數和每一行的第一個和最後一個域
2.模糊匹配類似於like
awk '$1 ~ /101/ {print $1}' file 顯示文件中第一個域匹配101的行(記錄)
awk '/101/' file 顯示文件file中包含101的匹配行。
awk '/101/,/105/' file
awk '$1 == 5' file
awk '$1 == "CT"' file 注意必須帶雙引號
awk '$1 * $2 >100 ' file
awk '$2 >5 && $2<=15' file
3.對某一列求和
對文件第2列數據求和,begin用於初始化變量,中間邏輯處理,end做輸出處理
awk 'BEGIN {total=0} {total+=$2} END {print total}' file