合并多个不同长度的文本文件
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|
我有多个格式简单的文件,例如
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|