常用awk命令

2021-09-30 11:24:58 字數 2918 閱讀 9475

awk 用法:awk ' pattern  '  

變數名 含義 

argc 命令列變元個數 

ar** 命令列變元陣列 

filename 當前輸入檔名 

fnr 當前檔案中的記錄號 

fs 輸入域分隔符,預設為乙個空格 

rs 輸入記錄分隔符 

nf 當前記錄裡域個數

nr 到目前為止記錄數 

ofs 輸出域分隔符 

ors 輸出記錄分隔符 

1、

awk'/

101/' 

file

顯示檔案file中包含101的匹配行。

awk '/101/,/105/'         file 

awk '$1 == 5'             file 

awk '$1 == "ct"'          file                注意必須帶雙引號 

awk '$1 * $2 >100 '       file  

awk '$2 >5 && $2<=15'     file

2、awk '' file       顯示檔案file的當前記錄號、域數和每一行的第乙個和最後乙個域。

awk '/101/ ' file 顯示檔案file的匹配行的第

一、二個域加10。 

awk '/101/ '  file 

awk '/101/ ' file 顯示檔案file的匹配行的第

一、二個域,但顯示時域中間沒有分隔符。

3、df | awk '$4>1000000 '         通過管道符獲得輸入,如:顯示第4個域滿足條件的行。

4、awk -f "|" ''   file 按照新的分隔符「|」進行操作。 

awk  'begin  

'       file 通過設定輸入分隔符(fs="[: \t|]")修改輸入分隔符。 

sep="|" 

awk -f $sep ''  file 按照環境變數sep的值做為分隔符。    

awk -f '[ :\t|]' '' file 按照正規表示式的值做為分隔符,這裡代表空格、:、tab、|同時做為分隔符。 

awk -f ''    '' file 按照正規表示式的值做為分隔符,這裡代表[、]

5、awk -f awkfile       file 通過檔案awkfile的內容依次進行控制。 

cat awkfile 

/101/ --遇到匹配行以後列印 ' hello! '.\047代表單引號。 

--因為沒有模式控制,列印每一行的前兩個域。

6、awk '$1 ~ /101/ ' file 顯示檔案中第乙個域匹配101的行(記錄)。

7、awk   'begin  

'           file 通過設定輸出分隔符(ofs="%")修改輸出格式。

8、awk   'begin              begin 表示在處理任意行之前進行的操作。 

' file 取得檔案第乙個域的最大值。 

(表示式1?表示式2:表示式3 相當於: 

if (表示式1) 

表示式2 

else 

表示式3 

awk '' file 

9、awk '$1 * $2 >100 ' file 顯示檔案中第乙個域匹配101的行(記錄)。

10、awk '' file 找到匹配行後先將第3個域替換後再顯示該行(記錄)。 

awk ''  file 將第7域被3除,並將餘數賦給第7域再列印。

11、awk '/tom/ ' file 找到匹配行後為變數wage賦值並列印該變數。

12、awk '/tom/   

end ' file end表示在所有輸入行處理完後進行處理。

13、awk 'gsub(/\$/,"");gsub(/,/,""); cost+=$4; 

end '    file gsub函式用空串替換$和,再將結果輸出到filename中。 

1 2 3 $1,200.00 

1 2 3 $2,300.00 

1 2 3 $4,000.00 

awk ' 

end "' file 

通過if和else if完成條件語句 

awk ' 

end "' file 

通過exit在某條件時退出,但是仍執行end操作。 

awk ' 

end "' file 

通過next在某條件時跳過該行,對下一行執行操作。 

14、awk '' file1 file2 file3>fileall 把file1、file2、file3的檔案內容全部寫到fileall中,格式為 

列印檔案並前置檔名。

15、awk ' $1!=previous     

' fileall 把合併後的檔案重新分拆為3個檔案。並與原檔案一致。

16、awk 'begin '         通過管道把date的執行結果送給getline,並賦給變數d,然後列印。 

17、awk 'begin ' 

通過getline命令互動輸入name,並顯示出來。 

awk 'begin }' 

列印/etc/passwd檔案中使用者名稱包含050x_的使用者名稱。 

18、awk ' 

} } }'

19、在awk中呼叫系統變數必須用單引號,如果是雙引號,則表示字串 

flag=abcd 

awk ''   結果為abcd 

awk ''   結果為$flag

以上**chinaunix,以下是自己的總結:

求和:$awk 'beginend' a.txt   -----對a.txt檔案的第四個域進行求和!

常用awk命令

awk 用法 awk pattern 變數名 含義 argc 命令列變元個數 argv 命令列變元陣列 filename 當前輸入檔名 fnr 當前檔案中的記錄號 fs 輸入域分隔符,預設為乙個空格 rs 輸入記錄分隔符 nf 當前記錄裡域個數 nr 到目前為止記錄數 ofs 輸出域分隔符 ors ...

awk命令常用例項

1 簡單 awk 101 file 顯示檔案file中包含101的匹配行。awk 101 105 file 顯示檔案file中包含101或105的行。awk 1 5 file 顯示檔案file中第1個字段為5的行。awk 1 ct file 顯示檔案file中第1個字段為ct的行 awk 1 2 1...

awk命令常用例項

本文編輯整理自 1 簡單 awk 101 file 顯示檔案file中包含101的匹配行。awk 101 105 file 顯示檔案file中包含101或105的行。awk 1 5 file 顯示檔案file中第1個字段為5的行。awk 1 ct file 顯示檔案file中第1個字段為ct的行 a...