AWK命令快速入門
AWK
AKW是一個強大的文本處理工具,它的所有功能不可能在一篇文章內講完。
本文以awk常用的幾種情形作為講解,旨在能夠適用于常用的awk文本處理。
常用命令格式:
awk -F '文本切割符' '{處理過程}’ 文件名例如:awk -F ':' '{print}' file.txt
用$n表示切割后第n個部分
例如:jack:lucy:tom
用‘:’切割后,$1為jack $2為lucy $3為tom
由簡單到復雜的過程如下
1、創建一個文件,方便后續操作,用last命令調出登陸信息,把最后5次的信息重定向存儲到file.txt
cd ~ touch file.txt last -n 5 > file.txt cat file.txt root pts/1 :0.0 Sat Sep 20 05:11 still logged in root :0 Sat Sep 20 05:11 still logged in root :0 Sat Sep 20 05:11 - 05:11 (00:00) reboot system boot 2.6.18-194.el5 Sat Sep 20 05:02 (00:10) root pts/1 :0.0 Sat Sep 20 02:03 - crash (02:59)
2 、用默認的空白符號作為分隔符,打印分割后的第一個部分
%%注意,一定不要忘記打文件名
awk '{print $1}' file.txt root root root reboot root
awk -F ' ' '{print $2}' file.txt pts/1 :0 :0 system pts/1
4 、用空白符作為分隔符,正則匹配開頭是root的行,打印第二個部分
awk -F ' ' '/^root/{print $2}' file.txt pts/1 :0 :0
5 、用空白符作為分隔符,打印開始執行的信息,正則匹配開始是root的行,打印第二個部分,打印結束執行的信息
這里的執行順序是:BEGIN內容->每一行讀取,正則匹配,切割,處理,直到讀到文件末尾->END內容
awk -F ' ' 'BEGIN{print "Begin..."} /^root/{print $2} END{print "End!"}' file.txt Begin... pts/1 :0 :0 pts/1 End!
6 、用冒號作為分隔符,打印開始執行的信息,正則匹配開始是root的行,打印第二個部分,打印結束執行的信息
awk -F ':' 'BEGIN{print "Begin..."} /^root/{print $2;print "one line"} END{print "End!"}' file.txt Begin... 0.0 Sat Sep 20 05 one line 0 Sat Sep 20 05 one line 0 Sat Sep 20 05 one line 0.0 Sat Sep 20 02 one line End!
本文由用戶 wgd7 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!