linux之awk使用技巧
【摘要】 打印文件的第一列> awk '{print $1}' rumenz.txt 打印文件的前两列> awk '{print $1,$2}' rumenz.txt 打印文件的最后一列> awk '{print $NF}' rumenz.txt 打印文件的总行数> awk 'END{print NR}' rumenz.txt 打印文件的第一行> awk 'NR==1{print}' rumenz....
打印文件的第一列
> awk '{print $1}' rumenz.txt
打印文件的前两列
> awk '{print $1,$2}' rumenz.txt
打印文件的最后一列
> awk '{print $NF}' rumenz.txt
打印文件的总行数
> awk 'END{print NR}' rumenz.txt
打印文件的第一行
> awk 'NR==1{print}' rumenz.txt
- NR是指awk正在处理的记录位于文件中的位置(行号)
打印文件的第3行第2列
> sed -n '3,1p' rumenz.txt | awk '{print $2}'
删除空行
> awk 'NF' rumenz.txt
打印奇数行
> awk 'b=!b' rumenz.txt
打印文件按#
分割后,行长度为3的所有行
> awk -F '#' 'if(NF==3){print}' rumenz.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}' rumenz.txt
列运算
> cat 1.txt
1
2
3
求和
> cat 1.txt | awk '{a+=$1}END{print a}'
求平均值
> cat 1.txt | awk '{a+=$1}END{print a/NR}'
求列的最大值
> cat 1.txt | awk 'BEGIN{a=0}{if($1>a) a=$1 fi}END{print a}'
原文链接:https://rumenz.com/rumenbiji/linux-awk-skills.html
微信公众号:入门小站
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)