Linux中的几个常用的Awk命令

打印文件的第一列

> awk '{print $1}' zwx.txt

打印文件的前两列

> awk '{print $1,$2}' zwx.txt

打印文件的最后一列

> awk '{print $NF}' zwx.txt

打印文件的总行数

> awk 'END{print NR}' zwx.txt

打印文件的第一行

> awk 'NR==1{print}' zwx.txt
  • NR是指awk正在处理的记录位于文件中的位置(行号)

打印文件的第3行第2列

> sed -n '3,1p' zwx.txt | awk '{print $2}'

删除空行

> awk 'NF' zwx.txt

打印奇数行

> awk 'b=!b' zwx.txt

打印文件按#分割后,行长度为3的所有行

> awk -F '#' 'if(NF==3){print}' zwx.txt
  • NF是指awk正在处理的记录包含几个域(字段),这与域分隔符有关,默认为空

统计Linux系统中每个用户所用的shell

> cat /etc/passwd | awk -F ":" '{print $1" : "$7}'

用awk统计linux系统中所有的用户数

> cat /etc/passwd | awk '{count++}END{ print count}'

统计某个文件夹下文件所占的字节数

> ls -l | awk 'BEGIN{size=0}{size=size+$5}END{print size}'

统计某个文件夹下文件所占的字节数,按M显示

> ls -l | awk 'BEGIN{size=0}{size=size+$5}END{print size}'

netstat结合awk统计TCP连接数

> netstat -tunlp | awk '/^tcp/{++a[$6]}END{for(i in a) print i,a[i]}'

过滤空行

> awk '/^[^$]/ {print $0}' zwx.txt

列运算

> cat num.txt
1
2
3
求和
> cat num.txt | awk '{a+=$1}END{print a}'
求平均值
> cat num.txt | awk '{a+=$1}END{print a/NR}'
求列的最大值
> cat num.txt | awk 'BEGIN{a=0}{if($1>a) a=$1 fi}END{print a}'
  • 15
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值