只返回正则表达式匹配项,而不是整行



我有一个多行文档,我想从中提取一个特定的关键字和之后的单词。它看起来像这样:

This is key word1 line 1.
This is line 2.
This is key word2 line 3. 

如果我使用egrep 'key [^s]+ ',输出为:

This is key word1 line 1.
This is key word2 line 2. 

然而,我希望输出只是匹配的,而不是整行,即:

key word1
key word2

有办法做到这一点吗?

grep(1)有一个-o标志,它只输出行的匹配部分。来自手册页:

  -o, --only-matching
      Show only the part of a matching line that matches PATTERN.

不过,您的模式不适合获得您想要的输出。尝试:

$ egrep -o 'key w+' file 
key word1
key word2

最新更新