(資料圖)
Awk 是一個非常強大的文本處理工具,它可以對文本文件進行數(shù)據(jù)提取、過濾、轉(zhuǎn)換和格式化等操作。Awk 的語法比較簡單,但功能非常強大,掌握它可以大幅提高文本處理的效率。下面是 Awk 的一些常用用法,供大家參考。
Awk 命令的基本語法如下:
awk "pattern {action}" filename
其中 pattern 是匹配文本的條件,action 是對匹配的文本進行操作的命令,filename 是待處理的文件名。如果省略 filename,則 Awk 命令會從標準輸入讀取數(shù)據(jù)。
Awk 命令的工作原理是逐行讀取文件,然后將每一行的文本按照指定的分隔符劃分成一系列的字段。在處理每一行文本的時候,Awk 會根據(jù)指定的 pattern 來進行匹配,如果匹配成功,則執(zhí)行對應的 action。
以下是 Awk 命令的一些常用選項:
-F
指定分隔符-v
定義變量-f
指定 awk 腳本文件以下是 Awk 命令的一些常用模式:
/pattern/
匹配包含 pattern 的文本行$n
匹配當前行的第 n 個字段NR == n
匹配第 n 行NF > n
匹配有超過 n 個字段的行以下是 Awk 命令的一些常用操作:
print
打印指定的文本或變量printf
格式化打印指定的文本或變量getline
讀取下一行的文本length
計算指定文本或變量的長度substr
提取指定文本或變量的子字符串split
將指定文本或變量按照指定的分隔符劃分為數(shù)組以下是 Awk 命令的一些示例:
awk "{print}" filename
awk "{print $1,$3}" filename
awk "{print $0}" filename | sort -k1
awk -F, "{print $1,$3}" filename
awk "/pattern/ {print $0}" filename
awk "{sum += $1} END {print sum}" filename
awk "{sum[$1] += $2; count[$1]++} END {for (i in sum) print i, sum[i]/count[i]}" filename
awk "{printf "%-10s %-10s %10s\n", $1, $2, $3}" filename
awk "{lines += NR; bytes += length} END {print lines, bytes}" filename1 filename2
awk "/pattern/ {if ($1 > 10) print "large"; else print "small"}" filename
責任編輯: