我有一组由wordpress生成的图像,我需要摆脱它们(一个生成集的示例):
但我需要保留以下内容(本例中为最后两个):
我正在尝试使用:
find /myPathToImages -type f -name '*[0-9]x*[0-9].jpg' -delete
但我也摆脱了1024x683版本。我该如何过滤掉它?
更新:
正则表达式还必须考虑垂直图像,如下所示:
逻辑规则是删除除原始图像以外的所有图像和宽度或高度均为1024的图像
答案 0 :(得分:1)
为什么要比它更难?你显然有办法找到你想要保留的图像。将它们移动到单独的目录中。如果需要,可以使用以下内容自动执行:
mkdir keep
for file in $(ls | grep <regex>); do mv $file keep; done
rm *
mv keep/* .
rm -rf keep
也许不是最优雅的解决方案,但它有效且总体思路非常灵活。
答案 1 :(得分:0)
要删除的文件名有一个模式,它们都有 3digits x 3digits ,基于此,您可以使用:
.*-[0-9]{3}x[0-9]{3}\.jpg
答案 2 :(得分:0)
Juste使用这个:
find /myPathToImages -type f -name '*-[0-9]{3}x[0-9]{3}.jpg' -delete
这将删除所有看起来像这样的图像 3位x 3位数。
正如@Pedro Lobito指出的那样,您需要在模式前添加-
以便不匹配4位长度。由*
引起的原因它会考虑:
*
后跟3位数字。