如何将多个文件的内容附加到一个文件中

新手上路,请多包涵

我想将五个文件的内容原样复制到一个文件中。我尝试对每个文件使用 cp 。但这会覆盖从前一个文件复制的内容。我也试过

paste -d "\n" 1.txt 0.txt

它没有用。

我希望我的脚本在每个文本文件的末尾添加换行符。

例如。文件 1.txt、2.txt、3.txt。将1,2,3的内容放入0.txt

我该怎么做 ?

原文由 Steam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 658
2 个回答

您需要 cat (连接的缩写)命令,带有外壳重定向( > )到您的输出文件

cat 1.txt 2.txt 3.txt > 0.txt

原文由 radical7 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于那些仍然像我一样偶然发现这篇文章的人来说,另一种选择是使用 find -exec

 find . -type f -name '*.txt' -exec cat {} + >> output.file

就我而言,我需要一个更强大的选项来查看多个子目录,因此我选择使用 find 。分解它:

 find .

查看当前工作目录。

 -type f

只对文件感兴趣,而不是目录等。

 -name '*.txt'

按名称减少结果集

-exec cat {} +

对每个结果执行 cat 命令。 “+”表示仅产生 1 个 cat 实例(谢谢@gniourf_gniourf)

  >> output.file

如其他答案中所述,将 cat-ed 内容附加到输出文件的末尾。

原文由 mopo922 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题