2

パイプで区切られた文字列を解析するためのkshスクリプトを書いています

export dummy="abc"  
echo "123|456|789" | awk '{split($0,output,"|"); print output[3] output[2] output[1]}'

上記のコードは機能しているようですが、output[3]の値をダミーに割り当てることができません。

そのような解析を行う方法はありますが、解析結果をkshスペース内の変数、つまりダミー(上記のサンプル)に割り当てたいですか?

4

2 に答える 2

6

シェルはそれを行うことができます:

line="123|456|789"
IFS='|' read a b c <<END
$line
END
echo $c  # => 789
于 2012-04-18T13:43:02.190 に答える
3

awk変数(つまりoutput[3])をシェル変数(つまりdummy)に割り当てることはできません。awkの出力を変数に割り当てることしかできません。

export dummy=`echo "123|456|789" | awk -F'|' '{ print $3; }'`

ただし、awkはここでは少しやり過ぎであり、cut同様に機能します。

export dummy=`echo "123|456|789" | cut -d'|' -f3`
于 2012-04-18T11:02:38.147 に答える