awkで変数を定義する

はじめに

ログ分析等でawkを利用することが多い。どのサーバのログかが分かるよう、出力結果にホスト名等を含めたいことがある。試行錯誤(というほど考えていないが。。)した結果、pwdの結果をawkに渡すのが汎用的かなと思って、その紹介です。

pwd

単純にpwdするとカレントディレクトリのフルパスになるので、カレントディレクトリだけ抜粋したい。
コマンド

$ pwd

結果

/Users/ユーザ名/Documents/blog_awk/host1


basename

ディレクトリ名を除いた文字列を返すコマンド。
コマンド

$ basename 

結果

usage: basename string [suffix]
       basename [-a] [-s suffix] string [...]


pwd + basename + awk

コマンド

$ awk -v host=$(basename $(pwd)) '{print host, $1}' test.txt 

結果

host1 aaa
host1 bbb
host1 ccc