引言
Awk是一種用於高級文本處理的通用腳本語言,其主要用作報告和分析工具,與大多數其他程序性編程語言不同,Awk是數據驅動的,也就是説需要定義一組針對輸入文本要執行的操作,然後其獲取輸入數據,對其進行轉換,然後將結果發送到標準輸出。
語法
awk [ -F fs ] [ -v var=value ] [ 'prog' | -f progfile ] [ file ... ]
參數
-F fs: 將輸入字段分隔符設置為正則表達式fs。-v var=value: 在執行awk程序之前,將值賦值給變量var。'prog':awk程序。-f progfile: 指定文件progfile,其中包含要執行的awk程序。file ...: 由指定的awk程序處理的文件。
示例
示例文件example.txt文件內容如下:
Bucks Milwaukee 60 22 0.732
Raptors Toronto 55 24 0.707
76ers Philadelphia 51 31 0.622
Celtics Boston 33 33 0.598
Pacers Indiana 30 34 0.585
輸出example.txt的第3個字段。
awk '{ print $3 }' example.txt
# 60
# 55
# 51
# 33
# 30
使用正則表達式匹配出以R開頭的組。
awk '/^R/ { print $1,$2,$3,$4 }' example.txt
# Raptors Toronto 55 24
使用BEGIN以及END輸出在處理記錄之前與之後執行的操作,處理過程為輸出第二個字段包含Tor的組。
awk 'BEGIN { print "Start Processing" }; $2 ~ /Tor/ {print $1,$2,$3,$4 }; END { print "End Processing" }' example.txt
# Start Processing
# Raptors Toronto 55 24
# End Processing
每日一題
EveryDay/awk命令.md at master · WindrunnerMax/EveryDay · GitHub
關聯
[[【Linux】getline解釋]]
參考
https://linuxize.com/post/awk...
https://www.computerhope.com/...
https://www.runoob.com/linux/...