【发布时间】:2014-11-14 16:22:43
【问题描述】:
我有一个文件“foo”,其中包含以下内容。:
mPosixHello
mPosixWorld
mPosix->ThisWontPrint()
mPosix.NorWillThis()
在命令行中,我输入:
egrep 'mPosix\B+' foo
正如预期的那样,它返回:
mPosixHello
mPosixWorld
现在,让我们将命令更改为:
egrep -o 'mPosix\B+' foo
输出返回不是我所期望的:
mPosix
mPosix
这是为什么?我希望看到与第一次运行相同的输出。我认为 -o 打印出匹配的实际子字符串而不是整行(在这种情况下,除了换行符之外它们是相同的东西?嗯...)
一些有用的信息:
> egrep --version
egrep (GNU grep) 2.12
> uname -a
Linux TSU-Debian-Dev 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2 x86_64 GNU/Linux
感谢任何见解。谢谢!
【问题讨论】:
-
既然已经回答了“为什么”的问题,我将把它作为评论发布:从你的“代码”来看,看起来你正在寻找一个类似于
egrep -o 'mPosix[a-zA-Z0-9]+' foo -
是的,你是对的。我只是懒惰,并认为我可以做到这一点。