私は各ループで単語を取得しようとしています。i
に挿入する方法がわかりませんprint $2
。
while [ $i -lt 4 ]
do
A=$(awk -F_ '{print $2}' <<< 'one_two_test_three')
echo $A
done
明らかに、これは次のように出力されます。
two
two
two
two
私が望むもの:
one
two
test
three
私は試した:
A=$(awk -F_ '{print $($i)}' <<< 'one_two_test_three')
役に立たない。
ベストアンサー1
正しい方法は、()オプションを使用してbash/shell
変数をawk
引数としてスクリプトに渡すことです。-v
variable
i=1;
while [ $i -lt 5 ]; do
A=$(awk -v i="$i" -F_ '{ print $i }' <<< 'one_two_test_three')
echo $A
((i++))
done
出力:
one
two
test
three