【问题标题】:Piping the contents of a file into AWK [duplicate]将文件的内容通过管道传输到 AWK [重复]
【发布时间】:2021-10-15 11:22:15
【问题描述】:

使用以下 AWK 程序:

#!/usr/bin/awk -f

BEGIN { FS=":" }

NR==1 { next; }
/^[1]/ { print $0; count++; }

END { printf("%d lines identified. File processing complete", count) }

我正在尝试通过以下方式将数据传递给脚本:

猫生物.data |生物.awk

不幸的是,shell 响应“bio.awk: command not found”

在发出命令之前,我在 bio.awk 文件上使用了 chmod +x。

谢谢。

【问题讨论】:

  • 试试./bio.awk
  • cat bio.data | awk -f bio.awk

标签: linux shell awk


【解决方案1】:

从文件中使用 GNU AWK 程序的简单示例,让 counter.awk 成为

#!/usr/bin/awk -f
END{print "Processed",NR,"lines"}

numbers.csv

1,one
2,two
3,three

然后

awk --file counter.awk numbers.csv

输出

Processed 3 lines

解释:--file counter.awk 通知 GNU AWK 使用 counter.awk 中的内容而不是第一个非选项参数作为源。如果您想了解更多关于--file 的信息,请阅读Command-Line Options in GNU AWK documentation。请注意,此解决方案不需要xcounter.awk 的权限

(在 GNU Awk 5.0.1 中测试)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    相关资源
    最近更新 更多