首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除重复文件的Bash脚本

删除重复文件的Bash脚本
EN

Stack Overflow用户
提问于 2015-03-24 02:35:08
回答 3查看 548关注 0票数 0

我对bash脚本很陌生,但我相信这将是删除给定目录中的重复图像文件的最佳方法,其名称如下:

代码语言:javascript
复制
IMG_151.jpg
IMG_151 2.jpg
IMG_151 3.jpg
IMG_152.jpg
IMG_152 2.jpg
IMG_152 3.jpg
....

换句话说,我想遍历这个目录并删除所有的图像文件,并给它附加一个编号。如有任何指导,将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-24 03:07:17

你也许可以通过以下方式逃脱惩罚:

代码语言:javascript
复制
rm *\ *

假设所有重复的文件中都有一个空格,并且没有任何原始文件。有点复杂,但更安全:

代码语言:javascript
复制
rm IMG_???\ ?.jpg

如果你愿意。不管怎么说,没有必要循环。

票数 0
EN

Stack Overflow用户

发布于 2015-03-24 03:26:33

首先要确定的是,ls来查看regex发现了什么:

代码语言:javascript
复制
ls IMG_[0-9][0-9][0-9]\ [0-9].jpg

如果它是准确的,你可以删除它们:

代码语言:javascript
复制
rm IMG_[0-9][0-9][0-9]\ [0-9].jpg
票数 0
EN

Stack Overflow用户

发布于 2015-03-24 03:04:29

使用regex和find命令(http://unixhelp.ed.ac.uk/CGI/man-cgi?find)。

这个命令搜索所有扩展名为".jpg“的文件,这些文件以"IMG_”开头,以从0到999的数字连在一起,并查找从0到9的空格和数字。

代码语言:javascript
复制
find . -regextype sed -regex ".*/IMG_[0-999][[:space:]][0-9]*.jpg"

如果希望删除该文件,请添加rm命令:

代码语言:javascript
复制
find . -regextype sed -regex ".*/IMG_[0-999][[:space:]][0-9]*.jpg" -exec rm -rf {} \;

在删除此文件之前,请使用命令查看regex是否正确。

如果您有一些权限问题,请在前面加上sudo

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29224076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档