linux之awk使用技巧

Posted wx580ec8c84ec69

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.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
微信公众号:入门小站

以上是关于linux之awk使用技巧的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用命令之awk

打开高效文本编辑之门_Linux awk之关联数组

Linux系统命令三剑客之 awk

Linux三剑客之awk命令详解

Linux上文本三剑客之awk详解

Linux文本处理三剑客之GNU awk的使用