我有以下4个文件
a_ROLLBACK2to3__test.sql,
a_1to2__test.sql,
a_2to3__test.sql,
a_2to2__test.sql
我想写一个find
命令来返回文件a_1to2__test.sql
、a_2to3__test.sql
和a_2to2__test.sql
,搜索中不应包含文件 a_ROLLBACK2to3__test.sql
。
我的查找命令看起来像
find . -name "*_*to*__*.sql"
但这会返回所有文件,但我不想要 a_ROLLBACK2to3__test.sql
。
基本上,在第一个 _
之后带有 ROLLBACK
的文件不应包含在内。
谁能帮我写出符合我要求的搜索模式?
谢谢
最佳答案
简单的用grep过滤结果:
找到 . -name '*_*to*__*.sql' | grep -v 回滚
或者使用带否定的 AND 子句 -a
!
:
找到 . -name '*_*to*__*.sql' -a ! -name '*ROLLBACK*'
关于linux - find 命令搜索模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24460973/