1

私は以下のようなスクリプトを使用しています

脚本

declare -a GET

i=1

awk -F "=" '$1 {d[$1]++;} {for (c in d) {GET[i]=d[c];i=i+1}}' session

echo ${GET[1]} ${GET[2]}

説明

問題は、外部に出力されたGET値が正しい値ではないことです...

4

1 に答える 1

2

あなたの質問は、「awkが呼び出されたシェル内でawkスクリプトの結果をどのように使用できるか」と理解しています。真実はそれが本当に些細なことではないということです。シェル内でCプログラムまたはPythonスクリプトからの出力を簡単に使用できるとは期待できません。独自のスクリプト言語であるawkと同じです。

いくつかの回避策があります。堅牢なソリューションを得るには、awkスクリプトからの結果を適切に簡単な形式でファイルに書き込み、シェルから読み取ります。ハックとして、を使用してawkからの出力をシェルに直接準備することもできます$()。それをコマンドと組み合わせると、set次のことができます。

set -- $(awk <awk script here>)

次に$1 $2などを使用しますが、awkからの出力のスペースに注意する必要があります。

于 2012-06-22T18:41:38.460 に答える