合并多个不同长度的文本文件

Merge multiple text files with different length

我有多个格式简单的文件,例如

File1   File2   File3
|1|     |2|     |4|
        |3|     |5|
                |6|

所有文件的长度都不同。我尝试获得以下输出:

|1,2,4|
|,3,5 |
|,,6  |

因此输出的每一行都包含等效输入文件的每一行,并以逗号作为分隔符。

运行以下命令

paste -d',' input1 input2

对于两个输入文件,上面给出了合适的输出。但是,运行 三个输入文件的命令导致

|1,2|
|,4 |
|,3 |
|,5 |
...

为什么对于三个或更多文件,两个文件的命令会失败?

快速而肮脏:

$ cat file1
|1|
$ cat file2
|2|
|3|
$ cat file3
|4|
|5|
|6|
$ paste -d ',' file[123] | sed -e 's/|//g' -e 's/^/|/g' -e 's/$/|/g'
|1,2,4|
|,3,5|
|,,6|