如何查找 files/(文件的 pwd),它在 Linux 中的目录和子目录中的特定单词下方具有特定单词



我有 200 个文件夹,每个文件夹都有多个 shell 和 sql 文件,我的要求是 grep/查找具有以下所有目录和文件

插入dbname.table_name

选择

我想知道插入到 ${dbname} 中的所有文件(文件的 pwd(是什么。{table_name} 后跟下一行中的选择。Db名称和表名对于所有名称都是相同的

你可以使用grep -r -i -A1 "insert.into" | grep -i -B1 select

-r将 grep 处理当前目录中的所有文件,并以递归方式处理所有子目录中的文件。

-A1在匹配的行后面打印一行,

-B1在匹配行之前打印一行B

因此,上面的第一个 grep 将打印与insert.into匹配的所有行加上下一个行;第二个 grep 将仅保留那些在第二行上有select的行。

(-i忽略大小写(

然后,您可以追加| grep -i insert.into | cut -d: -f1 | sort -u以仅获取文件名。

请注意,这做出了一些假设:

  • 选项-A/-B只在 Linux/gnu 上,而不是像 HPUX 这样的普通 Unix。
  • 如果你有同时包含insert.intoselect的行,你会得到一些时髦的输出。

最新更新