【发布时间】:2020-08-28 19:54:53
【问题描述】:
#!/usr/bin/awk -f
BEGIN{
print ARGV[1]
}
{
print $1, $3
}
END{
print "Done"
}
我需要同时拥有命令行参数和文件作为输入。 我尝试了以下方法并得到了显示的错误:
cat users.txt |./temp.awk 3
3
awk: ./temp.awk:4: fatal: cannot open file `3' for reading (No such file or directory)
显示了命令行参数,但我似乎找不到读取文件的方法。
谢谢。
【问题讨论】:
-
awk需要一个文件名而不是 3。如果你需要传递一个参数,你可以使用v=3代替,然后只报告值。 -
@karakfa 可以在不使用 v = 3 的情况下完成吗?感谢您的回复。
-
否,否则
awk将需要一个文件名。只有x=y类型被视为变量声明。 -
将 awk 脚本放入 bash 脚本中。