いつもの作業の備忘録

作業を忘れがちな自分のためのブログ

【awk】スクリプトの引数をawkで利用する

以下のa.txtとb.csvがあった場合を考える。

a.txt

apple
grape
orange


b.txt

apple   100   JPY
apple   1   USD
orange   98   JPY
banana   50   JPY
peach   268   JPY

以下のスクリプトでa.txtに載っているアイテムだけ抽出する

cat a.txt | while read -r f; do
  awk -v item="${f}" '{if(item==$2}{print $0;}}' b.txt
done

結果

apple   100   JPY
apple   1   USD
orange   98   JPY

■解説
awk の -v オプションでスクリプトの変数 f を awk 内での変数 item に代入している

※参考
http://punyo-er-met.hateblo.jp/entry/2016/02/27/115821