ファイル1:
123, 234
345, 789
678, 900
ファイル2
123, abc
345, dnc
出力(ファイル1のすべての列とファイル2の欠落値はNAです):
123,234,abc
345,789,dnc
678,900,NA
他のファイルが追加された出力ファイル
ファイル3
123, 2014/10/20
678, 2013/02/30
結果ファイル
123,234,abc,2014/10/20
345,789,dnc,NA
678,900,NA,2013/02/30
このようなファイルは10個あり、最初のファイルに追加する必要があります。
答え1
多くの入力ファイルがあり、プロセスを繰り返す必要がある場合は、これを単純化する1つの方法は関数を定義することです。
myjoin () {
join -t, -a 1 -a 2 -j 1 -e ' NA' -o auto $1 $2 ; }
次に、プロセス置換を使用して<()
呼び出します。
myjoin <(myjoin file1 file2) file3
結果:
123, 234, abc, 2014/10/20
345, 789, dnc, NA
678, 900, NA, 2013/02/30
私はここを使いました。cuonglmの答え以前の結合の質問に基づいて、このアプローチを他の「シングル」ソリューションと組み合わせて使用できます。