所以我正在寻找一种方法来捕获多个子文件夹中的.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