find命令search模式

我有以下4个文件

a_ROLLBACK2to3__test.sql, a_1to2__test.sql, a_2to3__test.sql, a_2to2__test.sql 

我想编写一个find命令来返回文件a_1to2__test.sqla_2to3__test.sqla_2to2__test.sql ,文件a_ROLLBACK2to3__test.sql不应该包含在search中。

我的find命令看起来像

 find . -name "*_*to*__*.sql" 

但是这将返回所有文件,但我不想要a_ROLLBACK2to3__test.sql

基本上第一个_之后的ROLLBACK文件不应该包含在内..

任何人都可以帮我写我的要求的search模式?

谢谢

简单地用grep过滤结果:

find . -name '*_*to*__*.sql' | grep -v ROLLBACK

或者使用AND子句-a否定!

find . -name '*_*to*__*.sql' -a ! -name '*ROLLBACK*'

你可以简单地寻找下划线后跟一个数字:

 find . -name '*_[0-9]*to*__*.sql' 

或者下划线之后没有R:

 find . -name '*_[!R]*to*__*.sql'