awk 入門
awk是用於unix和類unix系統的強大文字解析工具,但是由於它具有可用於執行常見解析任務的程式設計功能,因此它也被視為一種程式語言。 您可能不會使用awk開發下乙個gui應用程式,並且它可能不會代替您的預設指令碼語言,但是它對於特定任務而言是強大的實用程式。
這些任務可能是令人驚訝的多樣化。 發現awk可以最好地解決您的哪些問題的最好方法是學習awk。 您會驚訝於awk如何幫助您完成更多工作,卻花費更少的精力。
awk的基本語法為:
awk
[ options ]
'pattern '
file
首先,請建立此示例檔案並將其另存為colours.txt
name color amount
banana yellow 6
strawberry red 3
grape purple 10
plum purple 2
kiwi brown 4
potato brown 9
此資料被乙個或多個空格分隔為列。 以某種方式組織要分析的資料是很常見的。 它不一定總是由空格分隔的列,甚至不是逗號或分號,但尤其是在日誌檔案或資料轉儲中,通常存在可**的模式。 您可以使用資料模式來幫助awk提取和處理您要關注的資料。
$
awk'' colours.txt
color
redyellow
redpurple
green
purple
brown
brown
yellow
在這種情況下,awk顯示第二列,用$ 2表示。 這是相對直觀的,因此您可能會猜出print $ 1顯示第一列,而print $ 3顯示第三列,依此類推。
要顯示所有列,請使用$ 0。
美元符號($)後的數字是乙個表示式 ,因此$ 2和$(1 + 1)表示同一件事。
您使用的示例檔案非常結構化。 它有一行充當標題,而各列直接相互關聯。 通過定義條件需求,您可以限定希望awk在檢視此資料時返回的內容。 例如,要檢視第2列中與「黃色」匹配的專案並列印第1列的內容:
awk
'$2=="yellow"' colours.txt
banana
正規表示式也可以。 該條件查詢條件為$ 2,以便與字母p大致匹配,後跟任意數量的(乙個或多個)字元,然後依次跟著字母p:
$
awk'$2 ~ /p.+p/ ' colours.txt
grape purple
10plum purple
2
數字自然由awk解釋。 例如,要列印第三列包含大於5的整數的任何行:
awk
'$3>5 ' colours.txt
name color
banana yellow
grape purple
potato brown
預設情況下,awk使用空格作為字段分隔符。 但是,並非所有文字檔案都使用空格來定義字段。 例如,使用以下內容建立乙個名為colours.csv的檔案:
name,color,amount
banana,yellow,6
strawberry,red,3
grape,purple,10
plum,purple,2
kiwi,brown,4
potato,brown,9
只要您指定應將哪個字元用作命令中的字段分隔符,awk即可以完全相同的方式處理資料。 使用--field-separator(或簡稱為-f)選項來定義定界符:
$
awk-f","
'$2=="yellow" ' file1.csv
banana
使用輸出重定向,您可以將結果寫入檔案。 例如:
$
awk -f, '$3>5 colours.csv > output.txt
這將建立乙個包含awk查詢內容的檔案。
每個查詢 ,方法是在awk語句中包括重定向:
$
awk'' colours.txt
這將生成名為yellow.txt,red.txt等的檔案。
本文改編自社群技術播客hacker public radio 。
翻譯自:awk 入門
awk備忘,強大的awk
越來越發現awk的強大,做了實驗,做了總結 備忘!在linux shell中呼叫awk awk x x即為awk命令,命令必須包含在單引號中,至少雙引號都不行 方法一 awk f nr 7,nr 15 方法二 awk nr 7,nr 15 設定awk分隔符 nf 顯示域的個數 不是分隔符數,一般應該...
AWK快速入門
建立乙個檔名為emp.data的檔案,用vim編輯如下內容 beth 4.00 0 dan 3.75 0 kathy 4.00 10 mark 5.00 20 mary 5.50 22 susie 4.25 18 每列分別為名字,時薪,工時。如果想列印每個雇員的名字和他們的薪酬 awk 3 0 em...
Awk 入門筆記
在專案中需要寫shell從日誌檔案中獲取訪問記錄,用到了awk資料處理工具。特做一下中結。awk處理每行資料的時候預設是採用空格或者tab隔開的,將每行資料拆分為每一列。每一列都有預設的標示,1 2 其中0標 示一整行 還有幾 個比較常 用到的內 置變數如 下,在使 用的時候 不需要使 用 符號。n...