在终端 Mac OS X 中大量删除具有公共前缀的文件
Massively delete files with common prefix in terminal Mac OS X
我有一堆这样的图片:
除了没有后缀的(-150x150, -256x256, etc).
,我想全部删除
例如,看上图我只想保留bg_section_2.jpg
、bg_section_bw.jpg
和bg_section_half_2.jpg
并删除其他带有前缀的。
The numbers of the sizes (-150x150...etc) are not the same in all the
examples. But they have the same structure.
非常感谢您的宝贵时间! :)
您可以使用查找来完成此操作。 -regex
选项接受具有一个或多个数字 [0-9]+
的所有内容,后跟一个 x
,然后再依次跟一个或多个数字 [0-9]+
。请确保您首先通过复制目录来测试它并检查结果;-)
$ mkdir tmp
$ cd tmp
$ touch {a,b,c}.png; touch {a,b,c}-{10,11}x{150,4000}.png
$ find . -type f -regex '.*[0-9]+x[0-9]+.*' -exec rm {} \;
$ ls
a.png b.png c.png
根据 s3cur3 的通知(谢谢!),您应该在 Mac 上添加 -E
标志:
$ find -E . -type f -regex '.*[0-9]+x[0-9]+.*' -exec rm {} \;
我有一堆这样的图片:
除了没有后缀的(-150x150, -256x256, etc).
,我想全部删除例如,看上图我只想保留bg_section_2.jpg
、bg_section_bw.jpg
和bg_section_half_2.jpg
并删除其他带有前缀的。
The numbers of the sizes (-150x150...etc) are not the same in all the examples. But they have the same structure.
非常感谢您的宝贵时间! :)
您可以使用查找来完成此操作。 -regex
选项接受具有一个或多个数字 [0-9]+
的所有内容,后跟一个 x
,然后再依次跟一个或多个数字 [0-9]+
。请确保您首先通过复制目录来测试它并检查结果;-)
$ mkdir tmp
$ cd tmp
$ touch {a,b,c}.png; touch {a,b,c}-{10,11}x{150,4000}.png
$ find . -type f -regex '.*[0-9]+x[0-9]+.*' -exec rm {} \;
$ ls
a.png b.png c.png
根据 s3cur3 的通知(谢谢!),您应该在 Mac 上添加 -E
标志:
$ find -E . -type f -regex '.*[0-9]+x[0-9]+.*' -exec rm {} \;