linux下awk的典型用法示例

打印包含root的行

awk -F":" '{if($1~/root/) print $1}' /etc/passwd

匹配root,并打印第一列

awk -F":" '/root/{print $1}' /etc/passwd   

打印第四列等于100的行

awk -F":" '$4==100 {print $0}' /etc/passwd  

打印不包含root的行

awk -F":" '$1 !~ /root/ {print $0}' /etc/passwd   

打印第一列不等于root的行

awk -F":" '$1 != “root” {print $0}' /etc/passwd  

如果第三列小于第四列,则打印此行

awk -F":" '$3 < $4 {print $0}' /etc/passwd  

匹配两列之和为155

awk -F":" '$3 + $4 == 155 {print $0}' /etc/passwd   

打印两列相加结果

awk -F":" ' {print $3,$4,"Total is:"$3 + $4 }' /etc/passwd   

区配某字段

awk '/[Rr]oot/' /etc/passwd   

抽取名字,其记录第一域的第四个字符是a,使用句点.。表达式/ ^ . . . a /意为行首前三个字符任意,第四个是a,尖角符号代表行首

awk '/^...s/' /etc/passwd         

匹配包含root或net或ucp的任意行

awk '/(root|net|ucp)/' /etc/passwd     

匹配以数字开头的行

awk '/^[0-9]/' group.txt         

打印0-10之间的行

awk 'NR>0 && NR<10{print NR,$0}' passwd 

打印大于7列的行

awk -F: 'NF>7 {print NF,$0}' passwd   

如果第31行超过8列,就打印这一行的第1列

awk -F: '{if (NF==8 && NR==31)print NR,$1}' passwd   

将包含/root的字段替换为admin

awk 'gsub(/root/,"admin") {print $0}' passwd 

如果第一列长度为4则打印此行

awk -F: 'length($1)==4 {print $0,length($1)}' passwd     

将命令传给awk

awk '$3==day {print $0}' day=`date +%d` /tmp/te.log     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值