私は以下のようなスクリプトを使用しています
脚本
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値が正しい値ではないことです...
私は以下のようなスクリプトを使用しています
脚本
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値が正しい値ではないことです...
あなたの質問は、「awkが呼び出されたシェル内でawkスクリプトの結果をどのように使用できるか」と理解しています。真実はそれが本当に些細なことではないということです。シェル内でCプログラムまたはPythonスクリプトからの出力を簡単に使用できるとは期待できません。独自のスクリプト言語であるawkと同じです。
いくつかの回避策があります。堅牢なソリューションを得るには、awkスクリプトからの結果を適切に簡単な形式でファイルに書き込み、シェルから読み取ります。ハックとして、を使用してawkからの出力をシェルに直接準備することもできます$()
。それをコマンドと組み合わせると、set
次のことができます。
set -- $(awk <awk script here>)
次に$1
$2
などを使用しますが、awkからの出力のスペースに注意する必要があります。