博客 / 詳情

返回

【Linux】awk命令介紹

引言

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/...

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.