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\t\t%s\n",$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

posted @ 2018-10-18 16:30  saintdingtheGreat  阅读(237)  评论(0)    收藏  举报