我试图合并大量总大小为75Gb的文件。如果我使用,例如如何在不创建新文件的情况下合并大量文件
~$ cat * > out.merge
的两个文件达150GB的大小和我的HD有没有这样的空间。那么如何避免重复数据呢?
在此先感谢...
我试图合并大量总大小为75Gb的文件。如果我使用,例如如何在不创建新文件的情况下合并大量文件
~$ cat * > out.merge
的两个文件达150GB的大小和我的HD有没有这样的空间。那么如何避免重复数据呢?
在此先感谢...
你可以使用一个循环为:在移动到下一个前
for n in *
do
cat "$n" >>out.merge && rm "$n"
done
在这种情况下,循环擦除使用的文件。你甚至可以在第一个文件重命名为out.merge
然后追加他们的休息,以保存第一个空间......
如果'cat'成功,我会倾向于只删除文件 - 即在'cat'和'rm'之间放置'&&'。 –
另外,如果文件名包含空格或者可以评估为球体,则这将会行为不当。它真的应该是'猫'$ n“'和'rm”$ n“'。显式跳过'out.merge'作为输入文件可能也是明智的; GNU'cat'检查它的输入和输出是否在同一地方,但并不是所有的实现都是健壮的。 –
感谢您的所有建议。为清楚起见,我没有明确检查“out.merge”的存在。我假设'out.merge'不存在开始。 –
猫一次两个文件,之后删除它们? – 123
不可能一次完成这一切吗?大概'猫'批次将会非常缓慢.. – Nacho
如果没有临时重复,您不会*想要*做到这一点,因为如果出现中途出错的情况,您可能会丢失数据。 – chepner