linux - find 命令搜索模式

标签 linux shell unix find

我有以下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

我的查找命令看起来像

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/

相关文章:

linux - 我遇到读取文件并运行 sudo su 命令的脚本的问题

java - 空字符串解析ntpq命令结果

Python:编译成 Unix 命令行应用程序

php - 从 PHP 启动 shell 命令

c++ - Cmake查找匹配cpp代码的头文件

linux - (Bash) 如何监控目录中的文件更改(创建、删除、重命名)

linux - "Unknown symbol in module"在模块插入时尽管有 EXPORT_SYMBOL

linux - 从字符串 linux 中获取键值

bash - 在 shell 脚本中定义一个 Increment 变量,该变量在每个 cronjob 上递增

linux - tar: 无法将目录更改为 <dir>/<file>: 不是目录