如何在一行中或文件或命令输出中的任何位置匹配 grep 匹配两个字符串

如何在一行中或文件或命令输出中的任何位置匹配 grep 匹配两个字符串

命令行 grep 工具非常强大,可用于搜索文件中的匹配项、对文本和数据进行排序、在大文件中查找字符串等等。许多命令行用户可能会发现自己遇到的一种常见情况是,在一行中寻求两个不同字符串的 grep 匹配。

为此,您可以在 MacOS 的终端中使用 grep,或任何其他基于 unix 的命令行提示符,无论是 Linux、Windows WSL、任何版本的 MacOS / Mac OS X,甚至是 rooted的 iOS/iPadOS(如果您喜欢这种事情)。

使用 grep 匹配同一行上的两个字符串

在命令行中,尝试以下语法将同一行中的两个字符串进行 grep 匹配:
grep "string1" /path/to/file |grep "string2"

例如,这可能如下所示:

grep "error" /var/log/messages |grep "critical"

使用 grep 匹配文件或命令输出中任意位置的两个字符串

另一种常见情况是需要使用 grep 来匹配文件或另一个命令输出中任何位置包含的两个不同字符串。为此,您可以使用 -e 标志,如下所示:

grep -e String1 -e String2

因此,例如,对于命令输出,可以使用以下命令字符串,在本例中匹配“CurrentCapacity”和“MaxCapacity”:

ioreg -l| grep -e CurrentCapacity -e MaxCapacity

命令行是为高级用户准备的,但 grep 是一个相当宽容的命令,如果你是命令行的新手,这是一个合理的命令来探索和调查。

请记住,如果您想进一步优化匹配和命令输出,也可以从 grep 中排除字符串。

正文完
 0