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:ca n'topenfoo」という出力しか得られません。それで、要約すると、これを回避する方法はありますか?この古い読み取りコマンドライン引数を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の新しいバージョンです。

または、GNUawkのような別のバージョンのawkをインストールすることもできますmawk

于 2013-03-25T23:11:49.790 に答える