我在使用 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 -w
,grep -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 确切的字符串。
谢谢!