Egrep / Sed:只返回正则表达式匹配,而不是整行 [英] Egrep/Sed: return only the regex match, not the whole line
问题描述
我有一个多行文档,我希望在其中提取特定的关键字和单词。它看起来像这样:
这是关键词1行1.
这是行2.
这是关键的第二行3.
如果我使用<$ c $
这是关键word1 line 1.
这是关键的word2行2.
然而,我'd喜欢将输出作为匹配,而不是整行,即:
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $>
关键字2
有没有办法做到这一点?这似乎是一个足够简单的任务,但我一直在头撞墙。感谢您的帮助!
grep(1)
有一个 -o
标志只输出该行的匹配部分。从手册页:
-o, - 仅匹配
仅显示匹配PATTERN的匹配行的部分。
你的模式不适合获得你想要的输出,虽然。尝试:
$ $ p $ lt; code> $ egrep -o'key \w +'文件
关键字1
关键字2
I have a multiline document from which I'm looking to extract a particular keyword and the word after that. It looks like this:
This is key word1 line 1.
This is line 2.
This is key word2 line 3.
If I use egrep 'key [^s]+ '
, the output is:
This is key word1 line 1.
This is key word2 line 2.
However I'd like the output to be the match only as opposed to the whole line, that is:
key word1
key word2
Is there a way to do that? It seems a simple enough task but I've been banging my head against the wall at this. Thanks for your help!
grep(1)
has a -o
flag that outputs only the matching part of the line. From the man page:
-o, --only-matching Show only the part of a matching line that matches PATTERN.
Your pattern isn't right to get the output you want, though. Try:
$ egrep -o 'key \w+' file
key word1
key word2
这篇关于Egrep / Sed:只返回正则表达式匹配,而不是整行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!