私が入力したとき:
echo "foo bar" | gawk -v var="content" '{print $var}'
私は結果がcontent
。foo bar
答え1
var
変数は、inではなく$var
inと同じ名前で参照されますawk
。以下を$n
参照n
大地:$1
最初のフィールド、$2
2番目...またはフルレコードn
== 0($0
フルレコード)。
必ずしも文字通りの数字である必要はありません。$(1+1)
またはを使用できます$variable
。variable
含まれている場合は最初のフィールドになります1
。通常、最後のフィールド(フィールド数を含む特殊変数)$variable
が使用されます。$NF
NF
あなたの例のように変数に数字が含まれていない場合数字ではありません0として理解されます。
したがって、はとvar="content"; print $var
同じvar=0; print $var
ですので、はと同じですprint $0
。つまり、レコード全体を印刷します。
ここで欲しいものは次のとおりです。
echo "foo bar" | gawk -v var="content" '{print var}'