绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Linux之awk使用技巧
2023-03-20 16:48:25
来自公众号:入门小站
链接:https://rumenz.com/rumenbiji/linux-awk-skills.html

打印文件的列

> 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}'

---END---

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Linux技术精选专区
创建时间:2020-07-08 10:30:23
Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • dapan
    专家
戳我,来吐槽~