命令行 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 中排除字符串。
正文完