Shell程式設計基礎 06 awk命令入門

2021-10-10 22:36:14 字數 1120 閱讀 6911

awk是一款報告生成器,更適合格式化文字,對文字進行較複雜格式處理,常用於提取資訊

它擁有強大的文字格式化的能力,可以把"報告"理解為"報表"或者"**",也就是說,我們可以利用awk命令,將一些文字整理成我們想要的樣子,比如把一些文字整理成"表"的樣子

grep 、sed、awk被稱為linux中的"三劍客"。

grep 更適合單純的查詢或匹配文字

sed 更適合編輯匹配到的文字

awk 更適合格式化文字,對文字進行較複雜格式處理

一、標準語法

1、awk [options] 『pattern』 file #篩選檔案裡的指定內容.,引號裡邊是正則操作

2、command | awk [options] 『pattern』 #前面可以配合命令和管道符,來篩選前面命令結果的指定內容

二、常用操作

1、awk -f [+= -,] -v ofs=『sep』 #通過-f或者-v fs(兩者效果等同)來指定後面的多個東西作為分隔符,-v ofs是指定輸出分隔符,預設為空白字元,就是輸出時帶有前面的分隔符

案例:awk -f '[+-=]' -v ofs='_' '' test.log

a_b_c_d

2、awk -v fs=』#』 <=> awk -f 『#』 通過-f或者-v fs(兩者效果等同)來指定後面的東西作為分隔符,輸入分割符

案例:awk -f '[+-=]' '' test.log

3、jps|awk 'nr==1 '使用nr來篩選具體的行,配合後面的print $n就可以取到某行某列的內容,也可以用//正則來篩選包含特定內容的行

三、其他

1、$0表示顯示整行 ,$nf表示當前行分割後的最後一列($0和$nf均為內建變數),wk可以靈活的將我們指定的字元與每一列進行拼接,或者把指定的字元當做乙個新列插入到原來的列中,也可以通過 或 輸出整行`

2、awk 包含兩種特殊的模式:begin 和 end。

begin模式表示,在處理指定的文字之前,需要先執行begin模式中指定的動作,就像報表的表頭

end模式表示,在處理完指定的文字之後,再執行end模式中指定的動作,就像報表的表尾

shell程式設計 awk基礎

語法格式 一awk begin patternend file name 二standard output awk begin patternend 基本格式 awk begin patternend begin 文字處理前所做的處理 pattern 對文字具體的處理 end 文字處理後所做的處理 ...

34 shell程式設計 awk之printf命令

格式符含義 s列印字串 d列印十進位制數 f列印浮點數 x列印十六進製制數 o列印八進位制數 e列印數字的科學計數法形式 c列印單子字元的ascii碼 左對齊 右對齊 1.已字串的格式列印 etc passwd的第7個字段,已 作為分隔符號 awk begin etc passwd 2.已10進製的...

shell指令碼嵌入expect和awk命令

網上查了好多資料 感覺也沒怎麼看明白 哭暈在廁所 我這智商是不是得轉產品去了額。主要是因為寫了好幾個版本 最後把能用的都改瞎了 看來還得再寫幾個別的 總結總結才好 總之 注意幾點 1 expect 塊裡面末尾需要寫 interact 但是我寫了這句話不太好使 可能是因為有eof的原因?或 send ...