0

我环顾四周,发现只有涉及该主题的问题或为我提供的答案不起作用。这是问题:

我正在为学校做一项作业,该作业要求我阅读 awk 脚本的命令行参数(一开始似乎很奇怪,但是嗯)。我们使用的是旧版本的 Unix,而我正在运行 Bash。此 awk 只有 -f 和 -Fc 选项。基本上,我一直在尝试执行“awk -f awk_script arg1 arg2 arg3 arg4 arg5 arg6”,但每次 awk 都尝试将 arg1 作为文件打开,但事实并非如此。我在其他地方看到的一个例子是:

awk 'BEGIN { print "ARGV[1] = ", ARGV[1] }' foo bar

它应该打印“foo”,但在这个系统上我只得到输出“ARGV[1] = awk: can't open foo”。所以,总而言之,有没有办法解决这个问题?可以 awk 这个旧的读取命令行参数并将它们用于输入文件以外的任何内容吗?讲师注释文件暗示了上述用法(打印 foo),但他的程序甚至没有运行,所以......

任何帮助将不胜感激。

编辑后:使用 SunOS 5.10 并且此 awk 不支持 -v 选项,仅支持 -f 和 -Fc

4

3 回答 3

1
于 2014-09-13T08:42:17.370 回答
0

一种可能的解决方法(可能不可接受)是使用 -v 选项awk

awk -v arg1=foo 'BEGIN { print arg1; }'
于 2013-03-25T22:53:19.007 回答
0

使用nawk/usr/xpg4/bin/awk。这些是支持更多功能的较新版本的 awk。

或者,您可以安装另一个版本的 awkmawk或 GNU awk。

于 2013-03-25T23:11:49.790 回答