我有两个带有顺序编号文件的文件夹。文件夹“Originals”包含所有文件,但文件夹“Modified”中缺少一些文件。有没有办法使用bash将文件夹“Original”中缺少的文件夹从“Originals”文件夹复制到新文件夹? 文件的内容和文件名不同,但文件名的结尾编号相关。
文件仍然是图片 - .png - 来自使用Imagemagick修改过的视频。十个文件夹每个包含15000个图像,由于使用Imagemagick处理时出错,每个“已修改”文件夹中有大约100个不规则丢失。
Originals:
xy_abc_00000.png
xy_abc_00001.png
xy_abc_00002.png
.
.
xy_abc_15000.png
Modified:
zz_def_00000.png
zz_def_00002.png
.
.
zz_def_14999.png
答案 0 :(得分:0)
list="$(diff <(ls -X Originals | sed "s:^.*[^0-9]\([0-9]*.png\)$:\1:") \
<(ls -X Modified | sed "s:^.*[^0-9]\([0-9]*.png\)$:\1:"))"
for file in $(grep "^<" <<<"$list" | cut -d" " -f2); do
cp Originals/xy_abc_$file Modified/zz_def_$file
done
不过于优雅,会打破带空格的名字,但仍然适合OP帖子中描述的任务。