我有两个文件夹 dir1、dir2。dir1 包含所有 *.png 文件,而 dir2 包含所有 *.mrc 文件。dir1 的文件数量比 dir2 少。
我确信 dir1 中的每个 png 文件在 dir2 中都有一个同名的 mrc 文件。如何创建一个仅包含与 png 文件同名的 mrc 文件的文件夹?
答案1
这有点低效,但如果你确定每个 png 文件都有相应的 mrc 文件,那么你真正需要做的就是循环遍历 png 文件并替换目录组件和扩展名,例如
for f in dir1/*.png; do echo cp "dir2/$(basename "$f" .png).mrc" newdir/; done
例如给定
$ tree dir1 dir2
dir1
├── a.png
├── b.png
└── d.png
dir2
├── a.mrc
├── b.mrc
├── c.mrc
├── d.mrc
├── e.mrc
└── f.mrc
0 directories, 9 files
然后
$ for f in dir1/*.png; do echo cp "dir2/$(basename "$f" .png).mrc" newdir/; done
cp dir2/a.mrc newdir/
cp dir2/b.mrc newdir/
cp dir2/d.mrc newdir/
去除 echo
一旦你满意了它就会做你想做的事