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