将可变长度的数字与shell脚本匹配

时间:2014-01-07 13:53:51

标签: regex bash shell

我有像

这样的文件
  • _1_blabla.sql
  • _35_description.sql
  • _148_last_migration.sql
  • structure.sql

如何匹配这些文件,以_variableLengthOfDigit_randomString.sql开头。

到目前为止,我有类似

的内容
find . -name '_[0-9]_*.sql' 

但它只会匹配第一种情况。

3 个答案:

答案 0 :(得分:4)

使用-regex的{​​{1}}选项:

find

或者,使用bash的扩展globbing:

find . -regex '.*/_[0-9]+_.*\.sql' 

答案 1 :(得分:1)

使用find您可以使用正则表达式

find . -regex '.*_[0-9]*_.*\.sql$'

答案 2 :(得分:0)

如果您使用grep

,则可以使用正则表达式
find . | grep '^_[0-9]*_.*\.sql$'

find的{​​{1}}仅仅模式匹配与您描述的模式不匹配。

您也可以使用现代-name命令的-regex选项。