使用find命令查找带有模式的文件

时间:2016-07-18 15:41:56

标签: bash find

我有三种类型的文件

  • 具有XXXYYY.A [1-9] [0-9] * B的文件;例如:ABC.A10B
  • 具有XXXYYY_random.A [2-9] [0-9] * B的文件;例如:ABC_random.A2B
  • 具有XXXYY_test.A [1-9] [0-9] * B的文件;例如:ABC_test.A14B

我想找到所有类型1和类型2的文件。我只需要XXXYYY_test.A1B类型3

我编写了以下bash命令来执行此操作

find . -name "*.A[1-9]*B" ! -name "*_test.A[2-9][0-9]*B"

但是上面的命令会打印所有*_test.A[0-9]*B个文件。

在bash

中打印类型1,2和类型3的*_test.A1B的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

如果你有find的gnu版本,那么你可以像这样使用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$'