awk命令個人總結(以CentOS 6.3環境下shell為例)

來源:互聯網
上載者:User
awk命令個人總結(以CentOS 6.3環境下shell為例) 最近學了一點Shell裡的awk命令基礎。下面根據自己所學做一些總結,僅供日後翻閱。如有錯誤,煩請指正。 awk是什麼。

awk其實算是一種程式設計語言,仔細拓展開可以有好多好多內容,而我學的知識一點皮毛,可能連入門都算不上了。在Linux下,awk可以用來對一些文本資料進行篩選和掃描處理。 awk是怎麼工作的。

awk一般可以搭配管道符使用,將送入awk出來的文字檔掃描處理。對於檔案的名字賦予$0,即第一個位置變數。awk一次掃描一行文本,從第一行到最後一行,尋找匹配要求的行,進行使用者操作。awk預設的分隔字元是空格或者定位字元,每一行依據分隔字元,分為多個列,或者更準確講是資料區段,分別賦予$1、$2…..
基本結構如下

       `awk '條件1{操作1}條件2{操作2}'`檔案名稱

條件:一般是關聯運算式
操作:預設處理是print列印輸出處理行 awk的兩個特殊條件

BEGIN和END,這兩個放在條件位置,可以使在其他命令執行前或執行後進行BEGIN和END對應的指令。具體下面再舉例子說明。 awk的基本選項

-F 指定分隔字元,-F後面加指定的分隔字元-f 指定指令碼,-f後面加指令檔,從該指令碼中讀取awk命令,代替輸入
awk使用例子

1.先Regex匹配整個test文檔裡的空白行,每一個空白行列印一次 “blank line”

 awk '/^$/{print "blank line"}' test

2.Regex匹配/etc/sysconfig/network裡的的主機名稱行,列印主機名稱

awk '/HOSTNAME/{print}' /etc/sysconfig/network

3.用-f 選項調用一個awk指令碼來對sample.txt做操作,awk指令碼是test.sh

awk -f test.sh sample.txt

4.輸出a,b,c,$1 $2 $3 分別對應輸出的a,b,c

echo a b c | awk'{print $1,$2,$3}'

5.讀取輸入的行並輸出資料區段個數

echo a b c | awk '{print $0}'

6.指定分隔字元是” : “,輸出passwd文本的第一列,即系統的使用者名稱

awk -F ":" '{print $1}' /etc/passwd //寫法1awk 'BEGIN {FS=":"}{print $1}' /etc/passwd //寫法2

7.awk中的變數,預設是空字串或者0

awk '/^$/ {x+=1} END {print x}' test //統計空白行行數並輸出

8.awk結合條件陳述式使用,因為awk都使用了BEGIN模式,所以,在沒讀取test文檔內容之前,就回把BEGIN後面的指令執行。

awk '{if($1<10) print "a"; else print "b"}' test  //如果test檔案中每一行的第一個參數小於10,則輸出a,否則輸出bawk 'i=1 {} BEGIN{while(i<=10) {++i;print i}}'   //i初始值為1,當i<=10,輸出i的值,i++awk 'BEGIN { do { ++x;print x } while (x<=10)}'  //do-while格式awk 'BEGIN{for(i=1;i<=10;i++) print i}'   //for迴圈
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.