我環顧了一會兒,發現只有觸及主題的問題或者提供了一個不起作用的答案。這裏的問題:在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