我环顾了一会儿,发现只有触及主题的问题或者提供了一个不起作用的答案。这里的问题:在awk中接受命令行参数
我正在为学校的任务,需要我阅读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:无法打开富”。总而言之,有没有办法解决这个问题?可以awk这个旧的读取命令行参数,并将它们用于除输入文件以外的其他任何内容?教官笔记文件暗示上述用法(印刷foo),但他的程序甚至不运行,所以...
任何帮助将不胜感激。
编辑后:使用的SunOS 5.10和这个awk不支持-v选项,只有-f和-FC
它可能是关于你的操作系统和awk版本的问题,因为......“对我来说“;-)'$ awk'BEGIN {print”ARGV [1] =“ARGV [1]}'abc' - 输出 - >'argv [1] = a'。编辑你的问题以包含'uname -a'和'awk --version'的输出。祝你好运。 (你可能没有得到--version的响应,那么你的awk是非常原始的设备; - ) – shellter 2013-03-25 22:48:58
哈哈我没有得到awk的回复--version – WannabeCoder 2013-03-25 23:04:27
给定了SunOS 5.1,你使用的awk是“旧的“〜1977年的awk。尝试将您调用的名称更改为'nawk'。 (新的awk)。这本由awk的作者编写的The Awk Programming Language的书是关于“新”awk的,并于1988年出版,但仍然极力推荐。 '有效的Awk编程'(2001)也很棒,涵盖了许多对gawk(gnu-awk)的增强。祝你好运。 – shellter 2013-03-26 00:43:08