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

Avilas

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

您可以在MACOS中的终端中使用GREP,或任何其他基于UNIX的命令行提示符,无论是Linux,Windows WSL,MacOS / Mac OS X的任何版本,还是扎根的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”匹配:

建议阅读:如何从命令行中找到网络打印机的IP地址

ioreg -l| grep -e CurrentCapacity -e MaxCapacity

该命令行是针对高级用户的,但是GREP是一个相当宽容的命令,如果您是命令行的新手,则是探索和调查的合理命令。

请记住,如果您想进一步完善匹配和命令输出,也可以将字符串排除在GREP中。

如果您有另一种方法可以匹配文件中的两个字符串或匹配命令输出中的多个字符串,请在下面的评论中与我们分享。