我是bash脚本的新手,但我相信这是删除给定目录中重复图像文件的最佳方法,其名称如下:
IMG_151.jpg
IMG_151 2.jpg
IMG_151 3.jpg
IMG_152.jpg
IMG_152 2.jpg
IMG_152 3.jpg
....
换句话说,我想遍历目录并删除所有带有附加编号的图像文件。任何指导都将非常感谢。
答案 0 :(得分:0)
你可能只能逃脱:
rm *\ *
假设所有重复文件都有空格,并且没有任何原件。有点复杂,但更安全:
rm IMG_???\ ?.jpg
如果您愿意。无论如何,没有必要的循环。
答案 1 :(得分:0)
首先要确定,ls
看看正则表达式找到了什么:
ls IMG_[0-9][0-9][0-9]\ [0-9].jpg
然后,如果准确,你可以删除它们:
rm IMG_[0-9][0-9][0-9]\ [0-9].jpg
答案 2 :(得分:-1)
使用正则表达式和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 {} \;
在删除此文件之前,请使用该命令查看正则表达式是否正确。
如果您在sudo
之前有一些权限问题。