如何连接循环分割的文件?

How to concatenate files split by round robin?

我使用 split -n r/12 file 拆分了一个文件,现在如何连接这 12 个文件?我试过 cat <files>paste <files>,但在使用 diff 后,整个文件与原始文件不同。

如何连接这 12 个文件,以便 cmp/diff 不会显示差异?要使用 paste/cat 的任何特殊参数?

循环拆分是绝对要求吗?如果不是,你可能只是分成几个部分:

$split --number=12 file

这将创建 12 个文件:

$ ls x*
xaa xab xac xad xae xaf xag xah xai xaj xak xal

现在你可以毫无区别地连接:

$cat x* > file.new

$diff file file.new

但如果没有办法绕过循环法要求,我会创建一个 bash 脚本——不太好。只是提供一个伪代码

类似于:

Create working directory
Copy all x* files into working directory
Change to working directory
Touch new concatenated file

While all x* files are not empty
  Iterate over files in alpha order
     Remove the first line in file
     Append the line to the new concatenated file