如何合并同一文件中的不同列?

Mar*_*nes 1 text-processing csv merge

我有三个文件,如下图:

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
Run Code Online (Sandbox Code Playgroud)

我需要我的输出文件是这样的:

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
Run Code Online (Sandbox Code Playgroud)

如何在 Redhat Linux 上执行此操作?

jim*_*mij 5

许多工具可以做到这一点,可能awk是第一个想到的,但我推荐这个join命令,特别是如果输入已经排序(如你的例子):

join file1 <(join file2 file3) | column -t
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)