awk----基本用法


awk具體的請看這個

https://www.cnblogs.com/bwbfight/p/9402738.html

awk 竟然自詡一種語言,ok.... 牛

既然這樣就學習一下吧

awk -F‘[指定多個分隔符]’

比如 awk -F'[ :]'表示指定:空格為分隔符

涉及多個重復分割符可以這樣指定 awk -F'[ :]+' 表示多個空格或者多個:號表示一個整體

例子

獲取ip:

 

 

NF(number of field)字段數:

如果字段數不一樣如何取最后一個字段呢?

如下例子

這里引入一個FNR

 

上面表示如果NR和FNR相等,顯然打印test.txt(NR順序計數,FNR分別計數),不等打印test1.txt

FNR在多文件時會分別統計行數,NR則是一起統計

 

打印指定行

打印第三行 awk 'NR==3{ print $0}' test.txt

awk 模式

awk 'true/false{行為}true/false{行為}'

awk '0{print $1}' test.txt =====結果一行也不打印

awk '1{print $1}' test.txt =====結果全部打印

awk 'NR==3{print $1}' test.txt====打印第三列

awk 'NR==2{print $1} NR==3' test.txt===打印第二三列

awk 'BEGIN{pint “-----start--------”}NR==1{print $0 }END{print '-----end----------------'}' test.txt

 

awk計算

awk '{a+=$1}END{print $1} '  a.txt ===把a.txt第一列加起來,並打印結果

awk '{a=$1+$2+$3;print a,int(a/3)}'  a.txt====把a.txt的每一行第一列,第二列,第三列加起來求平均值

awk變量

在shell外邊定義的變量,如何在awk中使用呢?

a=1

awk -va=$a '{print a}'

awk ‘{print '$a'}’

以上為獲取bash上變量的值在awk中使用的方法

-v 定義變量

awk -va=1 '{print $a}'

awk '{a=1;print a}'

 

 awk for循環

 awk 正則表達式

取ip

這種awk不支持

 

 

獲取test.txt第一列和test1.txt的第二列寫入文件

 

方法二:

 

 

 

取 df -h中USe%列的和

實現只打印前六行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM