【Linux】命令写在文件中并调用awk -f

我们在使用awk命令的时候,有时候命令特别长,在终端写出来格式太乱,难以阅读,以下是一个将命令写在文件中,并使用awk调用的具体案例

1.现在有文件file3.txt,内容如下:

image

2.ak2.awk脚本

#打印标题并格式化打印出数量合计
BEGIN { FS="\t" #设置字段分割符
       printf("%10s %2s %5s	%s\n\n",
       "Fruits","Num","Price","Place" )
      }
      { printf("%10s %2d %3d	%s\n",$1,$2,$3,$4)
       nm = nm + $2
      }
END   { printf("\n%10s %4d\n","Total",nm) }

上面这个程序在BEGIN的动作里将字段分割符设置为制表符(\t),并在输出之前打印标题,第二个printf语句(对每一输入行都会执行),将输出格式化为一张表格,使得每一列都与标题列表头对齐,END打印数量总和。


3.执行程序

awk -f ak2.awk file3.txt

4.输出结果

image



posted @ 2018-12-25 09:59  OLIVER_QIN  阅读(580)  评论(0编辑  收藏  举报