awk の OFS は有効です (続き)
きむらさんが解説してくださっています。
ただし特別な動作として、フィールド変数やレコード変数($0ね)に変更を加えたときとか、特殊変数NFを操作したときに、フィールド変数を使ってのレコードの再構築が行われます。このときは、フィールドとフィールドの間にはFSではなくOFSが置かれて再構築されます(なぜそうなのかは考えてみましょう)。
解説しよう(awkの動作)
実際に実在しないフィールドに代入してみましょう。
$ echo 'a,b,c' | gawk -v FS=',' -v OFS='|' '{$4="d";print $0}' a|b|c|d
ついでに再構成させてみましょう。
$ echo 'a,b,c' | gawk -v FS=',' -v OFS='|' '$1=$1' a|b|c
以下のものでは再構成されません。
$ echo 'a,b,c' | gawk -v FS=',' -v OFS='|' '$0=$0' a,b,c