我目前正在使用以下bash命令从大型多层目录中提取图片:
ChannelHandlerContext
但是,所有图片都存储在3个版本中:
find . -name \*.jpg -exec cp {} /newdir_path_.. \;
我只想提取xxx-LD.jpg
xxx-SD.jpg
xxx.jpg
图片,而不是LD和SD ...
应该如何修改我的命令以执行这种提取?
答案 0 :(得分:1)
您可以添加更多测试:
find . -name '*.jpg' -not -name '*-[LS]D.jpg' -exec cp {} /newdir_path_.. \;
-not
是GNU扩展;您可以改用! -name
。在某些Shell中,必须转义!
:\! -name
。
答案 1 :(得分:0)
考虑到文件名仅包含.jpg
之前的数字,这可能对您也有用:
find . -iregex '.*/[0-9]*\.jpg$' -exec cp {} /newdir_path_.. \;