私は次のデータを持っています:
apple pear sugar pizza
pizza chicken pasta turkey
「ピザ」をgrepしたいのですが、4列目だけをgrepしたいです。以下が利用可能であることを知っています。
awk '$4 == "pizza"'
しかし、「ピザ」という単語を含むfoodという変数があります。私がするとき
food=pizza
awk '$4 == "$food"'
二重アポストロフィに変更するとエラーが発生します。次のエラーが発生します。
awk: line 1: syntax error at or near ==
どうすればいいですか?
ベストアンサー1
シェル変数は、awkプログラムで使用される単一引用符内では拡張されません。
次のオプションを使用して、シェル変数をawkに渡すことができます-v
。
food=pizza
awk -v food="$food" '$4 == food'