我有 200 个文件夹,每个文件夹都有多个 shell 和 sql 文件,我的要求是 grep/find 所有目录和具有以下内容的文件
插入 dbname.table_name
选择
我想知道有哪些文件(文件的密码)已插入到 ${dbname}.{table_name} 中,然后是下一行中的选择。所有数据库名称和表名称都相同
你可以使用 grep -r -i -A1 "insert.into"| grep -i -B1 选择
-r
将对当前目录中的所有文件进行 grep,并在所有子目录中递归。
-A1
在匹配行A之后打印一行
-B1
在匹配行之前打印一行 B。
所以上面的第一个 grep 将打印所有匹配 insert.into
的行加上下一个;第二个 grep 将只保留那些在第二行有 select
的对。
(-i
忽略大小写)
然后您可以附加 | grep -i 插入。剪切-d:-f1 | sort -u
仅获取文件名。
请注意,这里有一些假设:
- 选项
-A/-B
仅适用于 Linux/gnu,不适用于 HPUX 等纯 Unix。
- 如果您有包含
insert.into
和 select
的行,您会得到一些奇怪的输出。
我是一名优秀的程序员,十分优秀!