appending a file to another as a new column

自分の正攻法 (?) なるもので書いてみる。う〜ん、冗長。

{                                                                                            
  line[ARGIND,FNR] = $0;
  line_no = FNR;
  if ( line[ARGIND,FNR] !~ /,$/ ) {
    line[ARGIND,FNR] = sprintf( "%s,", line[ARGIND,FNR] );
  }
}
END {
  for ( i = 1; i <= line_no; i++ ) {
    for ( j = 1; j <= ARGC; j++ ) {
      connected_line = sprintf( "%s %s", connected_line, line[j,i] );
    }
    sub( /^ /, "", connected_line );
    printf( "%s\n", connected_line );
    connected_line = "";
  }
}

これのメリットは、いくつファイルがあっても最初のファイルに繋げてくれるところですかね。
END で処理する分、メモリは食いますが、自由度は高くなります。
例外処理をしているようで、実はしきれてないし・・・。
# え、ダメダメ?

ちなみに、ARGIND, ARGC が使えない場合には、ファイル (FILENAME) が切り替わったときにカウンターを増やしてそれを ARGIND にするとか、for(a in ARGV) でカウントした値を ARGC にすればよろし。
どこかで配列を for 文で勘定するのはイケてないと書かれていたが、ARGC だって asorti() だってない awk だってありますので、見捨てないように・・・。