awk命令使用

格式:awk '{ pattern + action }' {filenames}

常用參數:

-F 指定分割域符 默認是以空格爲分隔符

BEGIN 打印開頭

END   打印信息尾

內置變量

ARGC  命令行參數個數

ARGV  命令行參數排列

ENVIRON 支持隊列中系統環境變量的使用

FILENAME awk瀏覽的文件名

FNR      瀏覽文件的記錄數

FS       設置輸入域分隔符,等價於 -F選項

NF       瀏覽記錄的域的個數

NR        已讀的記錄數

OFS       輸出域分隔符

ORS       輸出記錄分隔符

RS        控制記錄分隔符

例子:

-F的使用

[root@localhost ~]# cat /etc/passwd |awk -F: '{ print $1"\t"$7}'|head -5

root /bin/bash

bin /sbin/nologin

daemon /sbin/nologin

adm /sbin/nologin

lp /sbin/nologin

BEGIN和END的使用

[root@localhost ~]# cat /etc/passwd |awk -F: 'BEGIN { print "user    shell"}{ print $1"\t"$7} END { print "test      /bin/bash" }'

user    shell

root /bin/bash

bin /sbin/nologin

daemon /sbin/nologin

adm /sbin/nologin

....

test      /bin/bash

匹配查找

[root@localhost ~]# cat /etc/passwd |awk -F: '{ if($1~/root/) print $1"\t"$7 }'

root /bin/bash

精確匹配

[root@localhost ~]# cat /etc/passwd |awk -F: '$1 == "root" { print $0 }'

root:x:0:0:root:/root:/bin/bash

不匹配

[root@localhost ~]#cat /etc/passwd |awk -F: '{ if($1!~/root/) print $1"\t"$7 }'

精確不匹配

[root@localhost ~]# cat /etc/passwd |awk -F: '$1 != "root" { print $0 }'

小於

awk '{if ($6 < $7) print $0 "$6 小於$7"}'

大於

awk '{if ($6 > $7) print $0 "$6 大於$7"}'

任意字符

其記錄第一域的第四個字符是a,使用句點.。表達式/^...a/意爲行首前三個字符任意,第四個是a,尖角符號代表行首

awk '$1 ~/^...a/'

或關係匹配

awk '$0~/(abc|123)/' 

and or使用

&& 意味着兩邊匹配均爲真

|| 意味着兩邊匹配,有一真,則爲真

awk '{if ($1 == "abc" && $4 == "123") print $0}'

awk '{if ($1 == "abc" || $4 == "123") print $0}'

統計/etc/passwd:文件名,每行的行號,每行的列數,對應的完整行內容:

FILENAME,NF,NR使用 等價於cat /etc/passwd|wc -l

[root@localhost ~]#awk  -F ':'  '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd

filename:/etc/passwd,linenumber:37,columns:7,linecontent:mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

統計某個文件夾下佔用的字節數

ll|awk 'BEGIN {size=0;}{ size=size+$5; }END{ print "total size is",size/1024/1024,"M"}'

total size is 201.351 M

統計和

awk '{ sum += $2 }END{ print sum }' aa


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章