Bash - 将文件合并到单独的子文件夹中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash - 将文件合并到单独的子文件夹中相关的知识,希望对你有一定的参考价值。

所以我正在寻找一种方法来捕获多个子文件夹中的.html文件,但要将它们保留在原位。

实际情况:

$ Folder1
.
├── Subfolder1
│   └── File1.html
    └── File2.html
├── Subfolder2
│   └── File1.html
    └── File2.html

期望的结果:

$ Folder1
.
├── Subfolder1
│   └── Mergedfile1.html
    └── File1.html
    └── File2.html
├── Subfolder2
│   └── Mergedfile2.html
    └── File1.html
    └── File2.html

到目前为止,我已经想出了这个:

find . -type f -name *.html -exec cat {} + > Mergedfile.html

但是这组合了Folder1的所有子文件夹的所有文件,而我希望将它们分开。

非常感谢!

答案

就像AK_告诉的那样,你可以使用find与exec。

find Folder1/ -mindepth 1 -maxdepth 1 -type d -exec sh -c "rep='{}';cat "'"$rep"'"/*.html > "'"$rep"'"/Mergedfile.html" ;
另一答案

您可以使用for语句循环所有子文件夹:

for i in Folder1/SubFolder*; do
   cat "$i"/File*.html > MergeFile$(echo "$i" | sed 's,.*([0-9]+)$,1,').html
done

以上是关于Bash - 将文件合并到单独的子文件夹中的主要内容,如果未能解决你的问题,请参考以下文章

VSCODE 查找在文件夹或者文件中代码或定义,在文件夹中查找文件的多种方法

VSCODE 查找在文件夹或者文件中代码或定义,在文件夹中查找文件的多种方法

如何将两个单独的 c++ 文件合并到一个程序中?

使用 bash 脚本将多个 excel 文件合并到一个 excel 工作簿但不同的工作表中

将 2 个单独的 XMLType 记录合并到一个 xml 文件中

Beyond Compare 3在比较HTML后,生成的报告中代码不换行