【发布时间】:2020-03-26 03:18:07
【问题描述】:
我很好奇如何在 awk 脚本中设置命令行选项,例如 -F 用于字段分隔符。我尝试像这样写shebang线
#!/usr/bin/awk -F ":" -f
并得到以下错误:
awk: 1: unexpected character '.'
对于这个例子,我可以用
BEGIN {FS=":"}
但我仍然想知道设置所有这些选项的方法。提前致谢。
编辑:
让我们使用另一个应该易于测试的示例。 输入文件:
1
2
3
4
test.awk:
#!/usr/bin/awk -d -f
{num += $1}
END { print num}
运行
/usr/bin/awk -d -f test.awk inputfile
将获得10 并生成一个名为awkvars.out 的文件,其中包含一些awk 全局变量。
但是
./test.awk inputfile
会得到
awk: cmd. line:1: ./test.awk
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: ./test.awk
awk: cmd. line:1: ^ unterminated regexp
如果我从 shebang 行中删除 '-d',
./test.awk inputfile
通常会输出 10。
我的问题是有没有办法在test.awk文件中写“-d”来生成awkvars.out文件?
【问题讨论】:
-
相关:Multiple arguments in shebang 。您也许可以使用
#!/usr/bin/env -S awk ...。
标签: awk