搜集整理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}'
搜集来自网络