私はそのようなことをしたい:
for i in 1 2 3
do
gawk '{if ($i==$2) {print $0;}}' filename
done
これは可能ですか?
ありがとう
gawk スクリプトを
{if ($1 == $2 ) ... } {if ($2 == $2 ) ... } {if ($3 == $2 ) ... }
できるよ:
私のために 1 2 3 行う gawk '{if ($'$i'==$2) {print $0;}}' ファイル名 終わり
スクリプトの 2 つの可能な解釈が思い浮かびます。
filename
ループの両方のバージョンを次に示します。
for i in 1 2 3; do
gawk "{if (\"$i\"==\$2) {print \$0;}}" filename
done
for i in "$@"; do
gawk "{if (\"$i\"==\$2) {print \$0;}}" filename
done
確かにそれは可能ですが、おそらくあなたがやりたいことをしないでしょう。
……そういえば、どうしたいの?あなたが書いたものからは本当に明確ではありません。おそらく変更しなければならないことの 1 つは、単一引用符を二重引用符に置き換えることです。これは、変数 ( など$i
) が単一引用符で囲まれた文字列に置き換えられないためです。