Bash 使用Find命令查找具有模式的文件

Bash 使用Find命令查找具有模式的文件,bash,find,Bash,Find,我有三种类型的文件 具有xxxyy.A[1-9][0-9]*B的文件;示例:ABC.A10B 具有xxxyy_random.A[2-9][0-9]*B的文件;示例:ABC\u random.A2B 具有XXXYY_测试.A[1-9][0-9]*B的文件;示例:ABC\u测试.A14B 我想找到所有类型1和类型2文件。我只需要类型3的A1Bxxxyy_测试 为此,我编写了以下bash命令 find-名称“*.A[1-9]*B”-名称“*_test.A[2-9][0-9]*B” 但是上面的命令打

我有三种类型的文件

  • 具有xxxyy.A[1-9][0-9]*B的文件;示例:
    ABC.A10B
  • 具有xxxyy_random.A[2-9][0-9]*B的文件;示例:
    ABC\u random.A2B
  • 具有XXXYY_测试.A[1-9][0-9]*B的文件;示例:
    ABC\u测试.A14B
我想找到所有类型1和类型2文件。我只需要类型3的A1B
xxxyy_测试

为此,我编写了以下bash命令

find-名称“*.A[1-9]*B”-名称“*_test.A[2-9][0-9]*B”

但是上面的命令打印所有
*\u test.A[0-9]*B
文件


在bash中打印类型1,2且仅打印类型3的
*\u test.A1B
的正确方法是什么如果您有gnu版本的
find
,则可以像这样使用
find

find . -regextype posix-extended -type f -regex '.*\.A[1-9][0-9]*B$'
如果您在OSX上,请使用:

find -E . -type f -regex '.*\.A[1-9][0-9]*B$'