linux - 如何在 linux 的目录和子目录中找到在特定单词下方有特定单词的文件/(文件密码)

标签 linux unix operating-system

我有 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.intoselect 的行,您会得到一些奇怪的输出。

关于linux - 如何在 linux 的目录和子目录中找到在特定单词下方有特定单词的文件/(文件密码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52436670/

相关文章:

linux - 如何使用 VirtualBox 正确进行端口转发?

linux - 让 ./countdown 5 从 5 开始倒计时

linux - Linux 上的 Vim 保存以 CRLF 结尾的文件

java - 简单的 Ping Pong Java 线程

c - 中断和调度程序

python - 什么是使用交换。 python 版本

linux - 多行字符串搜索输出为一行

linux - 使用 sed 命令打印重复行?

c++ - 在 UNIX(首选 Linux)上学习 C++ 编程的好书?

java - JVM如何手动使用Native Stack进行JAVA函数调用