以下のように3つのファイルがあります。
FILE 1:
DATE PGTO_CRED
20180801 50.00
20180802 150.00
20180803 130.00
20180804 110.00
20180805 200.00
FILE 2:
DATE PGTO_TOTAL
20180801 150.00
20180802 300.00
20180803 200.00
20180804 250.00
20180805 400.00
FILE 3:
DATE PGTO_FEE
20180801 35.00
20180802 10.00
20180803 25.00
20180804 140.00
20180805 135.00
次の出力ファイルが必要です。
DATE PGTO_CRED PGTO_TOTAL PGTO_FEE
20180801 50.00 150.00 35.00
20180802 150.00 300.00 10.00
20180803 130.00 200.00 25.00
20180804 110.00 250.00 140.00
20180805 200.00 400.00 135.00
Redhat Linuxでこれを行う方法は?
答え1
多くのツールがこれを行うことができます。おそらくawk
最初に浮上するツールでしょう。ただし、join
入力がすでにソートされている場合(例と同様)、このコマンドをお勧めします。
join file1 <(join file2 file3) | column -t
これはcolumn -t
出力をきれいに整列させるためであるため、削除できます。
出力:
DATE PGTO_CRED PGTO_TOTAL PGTO_FEE
20180801 50.00 150.00 35.00
20180802 150.00 300.00 10.00
20180803 130.00 200.00 25.00
20180804 110.00 250.00 140.00
20180805 200.00 400.00 135.00
答え2
いくつかの他のオプション:
paste file{1,2,3} | awk '{print $1,$2,$4,$6}' | column -t
またはちょうどちょっと:
awk '
NR == FNR {line[FNR] = $0; next}
{line[FNR] = line[FNR] OFS $2}
END {for (i=1; i<=FNR; i++) print line[i]}
' file{1,2,3} | column -t