値を配列の添え字/インデックスとして格納するという awk の概念を使用しています。以下のコードを見てください
stringVariable="hi,bye,cool.hot,how,see";
split(stringVariable,stringArray,",");
#This loop will iterate and stores the RIDs in the requestIds variable into an array
for(tr=1;tr<=length(stringArray);tr++)
{
Count++;
referenceIdArray[stringArray[tr]]++;
}
したがって、私の referenceId 配列には、hi,bye,cool,hot,how,see が含まれます。
次の値を持つサンプルファイルを考えてみましょう
hi
bye
gone
私の目的は、ファイルから値を取得し、以前に宣言された配列と一致することです。値のいずれかが一致する場合は、ファイルから値を出力します
awk script
awk '{BEGIN (Array loading done previously)} {if($0 in referenceIdArray) {print $0}}'
したがって、これにより、望ましい結果が得られます。ただし、「hi」が配列内に 1 回だけ表示されると仮定すると、アクション ブロックが値を見つけると、値が出力され、配列内の対応するエントリである referenceIdArray["hi"] も削除される必要があります。検索を効率化するためです。それらは添え字として保存されているため、エントリを削除する方法がわかりません。これに関する提案。ありがとうございました。