【问题标题】:how to find the files/(pwd of file) which is having a particular word below a particular word in directories and sub directories in linux如何在linux的目录和子目录中查找特定单词下方具有特定单词的文件/(文件密码)
【发布时间】:2019-02-25 10:43:45
【问题描述】:

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

插入到 dbname.table_name

选择

我想知道插入 ${dbname}.{table_name} 的所有文件(文件的密码)是什么,然后选择下一行。数据库名和表名都是一样的

【问题讨论】:

  • 我没有亲自使用过它,但我听说过 ripgrep 用于搜索目录树的文件内容的好东西。

标签: linux unix operating-system


【解决方案1】:

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

-r 将对当前目录中的所有文件进行 grep,并在所有子目录中递归。

-A1 在匹配行之后打印一行A

-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,您会得到一些时髦的输出。

【讨论】:

    猜你喜欢
    • 2018-10-22
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多