功能:
Awk是一種便於使用且表達能力強的程序設計語言,可應用於各種計算和數據處理任務。AWK是一種處理文本文件的語言,是一個強大的文本分析工具。
格式:
awk [POSIX or GNU style options] -f progfile [--] file ...
Usage: awk [POSIX or GNU style options] [--] 'program' file ...
$1 代表第幾列
'....{print }' ...的位置可以進行匹配 print 輸出
選項:
POSIX options: GNU long options: (standard)
-f progfile --file=progfile
-F fs --field-separator=fs //分隔符
-v var=val --assign=var=val //變量賦值
Short options: GNU long options: (extensions)
-b --characters-as-bytes
-c --traditional
-C --copyright
-d[file] --dump-variables[=file]
-e 'program-text' --source='program-text'
-E file --exec=file
-g --gen-pot
-h --help
-L [fatal] --lint[=fatal]
-n --non-decimal-data
-N --use-lc-numeric
-O --optimize
-p[file] --profile[=file]
-P --posix
-r --re-interval
-S --sandbox
-t --lint-old
-V --version
內置參數
FS 輸入字段分隔符,默認是空格或制表符 // 和-F差不多
OFS 輸出字段分隔符,默認是空格
RS 輸入記錄分隔符,默認是換行符\n
ORS 輸出記錄分隔符,默認是換行符\n
NF 表示的是瀏覽記錄的域的個數
$NF 表示的最后一個Field(列),即輸出最后一個字段的內容
NR 統計記錄編號,每處理一行記錄,編號就會+1
FNR 統計記錄編號,每處理一行記錄,編號也會+1,與NR不同的是,處理第二個文件時,編號會重新計數。
ARGC 命令行參數數量
ARGV 命令行參數數組序列數組,下標從0開始,ARGV[0]是awk
ARGIND 當前正在處理的文件索引值。第一個文件是1,第二個文件是2,以此類推
ENVIRON 當前系統的環境變量
FILENAME 輸出當前處理的文件名
IGNORECASE 忽略大小寫
SUBSEP 數組中下標的分隔符,默認為"\034"
實例:
1.1 awk '{print $}' 輸出第幾列
1.2 輸出多列用 , 隔開
1.3 '....{print }' ....位置判斷案例
1.4 -F 分隔符
ip a show ens33|awk -F'[ |/]+' 'NR==3{print $3}' 同時定義兩個分隔符
分開寫
1.5 FS 內置參數設置分隔符
1.6 -v 重新給變量賦值
1.7 $NF 表示的最后一個Field(列)
1.8 Sum求和 +=
1.9 求平均 /
1.10 SEBIN +if判斷 找出最大值
1.11 for循環 http的並發請求數與其TCP連接狀態
1.12 awk 定義數組
a[i]=value
- a:數組的名稱
- i:數組索引
- value:數組中元素所賦予的
創建數組 要注意點小紅點的地方,
1.需要加雙引號 不然會有語法錯誤
2. 輸出 用\n 隔開 也要加 " "
3.print 打一個就夠了