我正在尝试使用grep将搜索字词匹配到第一期
例如,通过
foobar searchterm. hello world.
应该打印foobar search term blah.
我将以上内容保存到一个名为的纯文本文件中search
。但是当我尝试
grep -i 'searchterm.*\.'search
它打印出来
foobar searchterm blah. hello world.
而不是在blah之后停下来。我这是怎么了?周期星.*
应该匹配直到字面周期的第一次出现的所有内容,\.
对吗?
默认情况下,grep
返回包含模式的整行,而不仅仅是匹配的模式。
您可以使用该-o
选项仅显示匹配的文本。
而且,您应该使用非贪婪搜索,以便仅匹配搜索词后的第一个句点。您需要使用Perl语法(-P
),并?
在.*
。后面加上修饰符。
尝试这样的事情:
grep -P 'searchterm.*?\.' -o search
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句