awk命令

sed命令处理文件的行数据,awk处理文件的列数据!

 awk -F: '{print $7}' /etc/passwd

ps aux | awk '{x=x+1;} END {print x}'

awk -F: '{print $7;}' /etc/passwd

$0意味着打印所有列

假如有名为goods的以下文件

缠手带 200
拳击手套 100
护齿 300

需求一 打印库存量在200以下的记录

awk '$2<300 {printf "%s %s ",$1,"重新订货"}' goods

  •  END宏
缠手带 200


拳击手套 100

护齿 300

需求2:如果如上所示有空行,则计算出空行数

awk '/^ *$/ {count=count+1} END {print count}' goods ----此处END就是一个宏

  • BEGIN宏

运行 sudo vim /etc/passwd,我们得到如下结果

为了拿到最后一列,我们可以如下写

awk 'BEGIN {FS=":"} {print $7}' /etc/passwd

原文地址:https://www.cnblogs.com/saintdingspage/p/9811342.html