是否有一个实用程序可以将文件逐行转储到标准输出并删除这些行?
我有许多大文件想要通过cat
.我当然可以
cat *.txt > merged.txt
但这将占用文件原来占用的空间的两倍txt
。cat
像这样删除它们之后
cat *.txt > merged.txt && rm -rf *.txt
减少了存储需求,但同时仍需要 2 倍的空间
我正在寻找一个命令,可以将行流式传输到标准输出,同时删除原始文件中的行:
<some command> *.txt > merged.txt
这样*.txt
+merged.txt
和 使用的总空间永远不会超过*.txt
最初需要的空间
答案1
逐行听起来有点棘手,但如果您接受逐个文件执行此操作(以便存储永远不会超过所有*.txt
文件+其中一个:
find -name "*.txt" -exec cat {} >> result.txt \; -exec \rm -f {} \;
要特别小心!在运行 find 命令之前,请务必检查它的结果,否则您将rm
删除不应以光速删除的内容。