我对bash脚本很陌生,但我相信这将是删除给定目录中的重复图像文件的最佳方法,其名称如下:
IMG_151.jpg
IMG_151 2.jpg
IMG_151 3.jpg
IMG_152.jpg
IMG_152 2.jpg
IMG_152 3.jpg
....换句话说,我想遍历这个目录并删除所有的图像文件,并给它附加一个编号。如有任何指导,将不胜感激。
发布于 2015-03-24 03:07:17
你也许可以通过以下方式逃脱惩罚:
rm *\ *假设所有重复的文件中都有一个空格,并且没有任何原始文件。有点复杂,但更安全:
rm IMG_???\ ?.jpg如果你愿意。不管怎么说,没有必要循环。
发布于 2015-03-24 03:26:33
首先要确定的是,ls来查看regex发现了什么:
ls IMG_[0-9][0-9][0-9]\ [0-9].jpg如果它是准确的,你可以删除它们:
rm IMG_[0-9][0-9][0-9]\ [0-9].jpg发布于 2015-03-24 03:04:29
使用regex和find命令(http://unixhelp.ed.ac.uk/CGI/man-cgi?find)。
这个命令搜索所有扩展名为".jpg“的文件,这些文件以"IMG_”开头,以从0到999的数字连在一起,并查找从0到9的空格和数字。
find . -regextype sed -regex ".*/IMG_[0-999][[:space:]][0-9]*.jpg"如果希望删除该文件,请添加rm命令:
find . -regextype sed -regex ".*/IMG_[0-999][[:space:]][0-9]*.jpg" -exec rm -rf {} \;在删除此文件之前,请使用命令查看regex是否正确。
如果您有一些权限问题,请在前面加上sudo。
https://stackoverflow.com/questions/29224076
复制相似问题