やりたいこと
以下のような変数が格納されているとして
sport=baseball
同変数を利用して以下のようなawkの処理を行いたい。
$ cat test.csv | awk 'BEGIN{FS=","} $1 == "baseball" {print $0}'尚、上記は指定列での検索を行う構文。
環境情報
$ awk -W version mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
やり方
-vオプションにて変数を指定した上で$無しで利用する。
$ cat test.csv | awk -F, -v sport="$sport" 'BEGIN{FS=","} $1 == sport {print $0}'
baseball,1866,America以下、補足です。
補足
単純に以下のように記載してもシングルクォーテーションで括られているため変数は展開されません。
$ cat test.csv | awk 'BEGIN{FS=","} $1 == "$sport" {print $0}'よってシングルクォーテーションの外で変数を連携する必要があります。
尚、文字列同様にダブルクオーテーションで変数を囲ってしまうと、変数ではなく文字列として認識されてしまうのでご注意ください。
$ cat test.csv | awk -F, -v sport="$sport" 'BEGIN{FS=","} $1 == "sport" {print $0}'
sport,X,XX