[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fol] Re: How to use shell variables in awk


奥村です。

In article <34C4C4C8.7914 _at_ jais.u-net.com>,
	terry tashiro <tashiro _at_ jais.u-net.com> writes:
terry> #!/bin/csh
terry> set NAME="aaaa"
terry> awk 'BEGIN { \
terry> i=0;         \
terry> }            \
terry> /$NAME/ {    \
terry> print $0;    \
terry> }'           \
terry>  input_file1
terry> のように$NAMEをawkの中で展開してくれたら(もちろんこれでは展開
terry> されません)いいのですが。

この場合は堀さんの示した方法が良いとは思いますが、awkの変数を
予めセットするには、

awk '... script ...' NAME=$NAME input_file1

などという手もあります。(manを見て下さい。)
可読性を重視するとのことであればこちらの方がいいかも。

元記事では pattern の部分に変数を使いたい、ということなので、
元のスクリプトではうまく行かなくて(自信なし)、

	{ if (match($0, NAME)) { print $0; } }

のように書き換えなければいけないと思いますが。

-- 
	奥村 努 / oku _at_ nml.t.u-tokyo.ac.jp

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」