Mac 终端命令 - 查找字符串并打印周围的行

Mac 终端命令 - 查找字符串并打印周围的行

我一直在使用 ack、sed、grep 进行测试,尝试搜索目录中的文件以查找特定字符串。我正在查看数据库文件以检查密码是否以明文形式列出。到目前为止,我已经能够使用此命令:grep -Ri "search_string" /path_to_Folder

但是,这仅输出包含该字符串的文件。我想更进一步,打印出字符串周围的行,这样我就不必进入并搜索每个文件。

我希望这是有道理的。太感谢了。

答案1

如果我理解正确的话,那么:

打印出字符串周围的线

您可以使用 grep 的-C(context) 选项,如下所示:

grep -aRi -C 1 "search_string" /path_to_Folder

它将为每个匹配打印三行:匹配之前的行、匹配的行和匹配之后的行。

由于数据库文件是二进制的,我们还需要 grep 的 -a 标志,以便它将文件视为文本。

示例运行:

$ grep -aRi jeff *
a/b/c/i:jeff
a/b/i:jeff
a/i:jeff
i:jeff

$ grep -aRi -C1 jeff *
a/b/c/i-hi
a/b/c/i:jeff
a/b/c/i-bye
--
a/b/i-hi
a/b/i:jeff
a/b/i-bye
--
a/i-hi
a/i:jeff
a/i-bye
--
i-hi
i:jeff
i-bye

相关内容