在Bash脚本中使用find命令查找整数

3
我需要查找并存档带有特定文件名的文件,例如ABC_000.jpg。
find ~/my-documents/ -iname "ABC_***.JPG" -type f -exec cp {} ~/my-documents/archive/ \;

然而,我似乎找不到一种方法来限制find函数仅查找3个整数,因为有些文件名为ABC_CBA.jpg的文件我不想包括在内。

1个回答

6

尝试使用这个查找方法:

find ~/my-documents/ -iname "ABC_[0-9][0-9][0-9].JPG" -type f -exec cp '{}' ~/my-documents/archive/ \;

编辑:或者使用正则表达式:

find -E ~/my-documents/ -iregex ".*ABC_[0-9]{3}\.JPG" -type f -exec cp '{}' ~/my-documents/archive/ \;

1
不错的方法;你也可以使用选项-regex来匹配特定名称(如果更复杂,则非常有用):find ~/my-documents/ -iregex "ABC_[0-9]{3}.JPG" -type f -exec cp '{}' ~/my-documents - Bentoy13
@Bentoy13:谢谢,我本来也想在我的原始答案中发布同样的内容,但在OSX上它对我不起作用,而且我忙于工作。现在当我有时间再次查看man find时,我意识到在这种情况下find -E会派上用场。回答已经编辑过了。 - anubhava

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接