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 查找在文件夹或者文件中代码或定义,在文件夹中查找文件的多种方法
使用 bash 脚本将多个 excel 文件合并到一个 excel 工作簿但不同的工作表中