awkのOFSが無効なときの対処

カンマ区切りのファイルのある項目(例えば3番目)をリテラル(例えば"aaaaa")で書き換えるのにawkを使って次のようにした。

awk -F"," '{print $1,$2,"aaaaa",$4}' inputfile 

とやってみたところ、項目の間に空白が入ってしまうので、

awk 'BEGIN{FS=",";OFS=""}{print $1,$2,"aaaaa",$4}' file 

としてみたが、間に空白が入ってしまう。OFSが無効になっている、というか無視されている。どうやらでたらめなお文字列でも動いてしまう。HP-UXではダメらしい。しょうがなく、printからprintfに変更して書式指定をしてやって、

awk '{printf("%s%s%s%s\n", $1, $2, "aaaaa", $4}' inputfile 

とやったところで、気づいた。printの引数をカンマではなく空白で並べればよかったことに。

awk '{print $1 $2 "aaaaa" $4}' inputfile