Linux 将连续的awk调用合并为一个

Linux 将连续的awk调用合并为一个,linux,unix,awk,Linux,Unix,Awk,我试图使用awk从文本文件中获取特定的数字。可通过应用三条规则连续识别编号: 仅获取以字符串名称开头的行: 在上述第6行中,获取第3个元素。元素由一个或多个空格分隔 取100减去找到的数字 我用两个管道awk调用实现了它: cat file | awk '/^Name\(s\):/' | awk -F " " 'NR==6 {printf "%2.2f", 100 - $3; exit}' 如何将两个awk调用合并为一个?未测试,因为文件不在那里,但: $ awk '/^Name\(s\):/

我试图使用
awk
从文本文件中获取特定的数字。可通过应用三条规则连续识别编号:

  • 仅获取以字符串
    名称开头的行:
  • 在上述第6行中,获取第3个元素。元素由一个或多个空格分隔
  • 取100减去找到的数字
  • 我用两个管道
    awk
    调用实现了它:

    cat file | awk '/^Name\(s\):/' | awk -F " " 'NR==6 {printf "%2.2f", 100 - $3; exit}'
    

    如何将两个
    awk
    调用合并为一个?

    未测试,因为
    文件不在那里,但:

    $ awk '/^Name\(s\):/ && ++c==6 {printf "%2.2f", 100 - $3; exit}' file
    

    您可以将AWK语句放入一个文件(例如myprogram.AWK)中,并像这样使用它

    awk -f myprogram.awk
    

    哎呀,我刚才是不是用了一只猫。。。修正。是的,做它应该做的<代码>cat
    现在显然已经过时了。谢谢!这不是答案,也不会帮助OP更接近答案。“不是答案”标志。这就是投票的目的。从技术上讲,这是一个答案。我没有这样标记它,我只是评论了一个被否决的。在添加功能时,我多次从多个单行awk命令移动到外部awk脚本。因此,我认为我的答案是最好的答案。对于易读性、可维护性和可伸缩性,随着复杂性的增加,最好将其外部化到自己的文件中。但它没有回答这个问题。当然,通过使用脚本文件,看起来任何数量的语句都可以简化为一个调用,但事实上并非如此。