awkでシェル変数を使う方法です。
普通にシェル変数を指定するとawkは理解してくれません。
$ awk '{print $HOME}' aaa awk: illegal field $(), name "HOME" input record number 1, file source line number 1 $
シングルクォーテーションの位置を工夫するとシェル変数を使うことができます。
$ awk '{print "'$HOME'/" $1}' aaa /Users/ksaito/aaa tmp /Users/ksaito/tmp ^C $
コメント
コマンドラインで Shell 変数を AWK に渡すのは面倒ですよね。そこで、AWK のコマンドラインオプションの -v を使うと Shell 変数を AWK 変数に渡すことができます。
$ awk -v HOME=${HOME} 'BEGIN{print HOME}'
または、GNU AWK (gawk) などであれば、配列 ENVIRON から環境変数を受け取れます。
$ gawk 'BEGIN{print ENVIRON["HOME"]}'
ご参考まで。
Roccoさん
おお!これは、いいですね。
"や'の入れ子でややこしいので何とかならないものかと思っていました。
勉強になりました!!