精确字符串匹配适用于 grep 2.6.3,但不适用于 grep 3.0

精确字符串匹配适用于 grep 2.6.3,但不适用于 grep 3.0

我在使用 Cygwin 的 Windows 机器上遇到问题。
在我的一台机器上 grep 精确字符串匹配使用$有效:

$ ipconfig /all | grep -A 1 'My Ethernet Server Adapter B52-2$'
   Description . . . . . . . . . . . : My Ethernet Server Adapter B52-2
   Physical Address. . . . . . . . . : ##-##-##-##-##

本机的版本grep是:

$ grep -V
GNU grep 2.6.3

然而,这在我的另一台机器上不起作用grep 3.0

$ ipconfig /all | grep -A 1 'My Ethernet Server Adapter B52-2$'

grep本机版本:

$ grep -V
grep (GNU grep) 3.0

如果我$从上面的命令中删除,我会得到结果,但我想要精确的字符串匹配。
有人可以帮我吗?

提前致谢!!

编辑:我已经尝试过grep -wgrep -o但无法得到预期的答案

答案1

感谢 Mikael 和 Kusalananda..
我得到了预期的结果:

ipconfig /all | sed -e 's/[[:space:]]*$//' | grep -A 1 'My Ethernet Server Adapter B52-2$'

或者

ipconfig /all | sed -e 's/\s*$//' | grep -A 1 'My Ethernet Server Adapter B52-2$'

的输出ipconfig /all中有尾随空格,因此我的匹配不起作用,sed空格被删除,因此我现在可以 grep 确切的字符串。
谢谢!

相关内容