在Linux中将连接文件分离为原始文件

时间:2012-09-20 04:20:16

标签: linux unix

我知道要在Linux中追加或加入多个文件,我们可以使用命令:cat file1 >> file2。 但在加入file1后,我找不到任何命令将file2file1分开。换句话说,我希望原来的file2split都回来了。我尝试使用{{1}}命令,但它只是将文件记录到具有相同大小的多个文件中。

有办法吗?

3 个答案:

答案 0 :(得分:1)

没有这样的命令,因为没有关于什么是file1或file2的信息被保留。新的组合文件只是一个数据流。

为了将它们“拆分”回来,你需要有关如何执行此操作的规则(例如,file1和file2有多少字节)。

答案 1 :(得分:1)

执行连接时,系统不会跟踪生成的文件的生成方式。所以它无法记住原始分割在该文件中的位置。 你能解释一下你想要做什么吗?

答案 2 :(得分:0)

没问题,只要你还有file1:

$ echo foobar >file1
$ echo blah >file2
$ cat file1 >> file2
$ truncate -s $(( $(stat -c '%s' file2) - $(stat -c '%s' file1) )) file2
$ cat file2
blah

此外,您可以使用stat -c '%s' filename代替wc -c filename | cut -f 1 -d ' ',{{1}}更长但更便携。