当前位置: 动力学知识库 > 问答 > 编程问答 >

Egrep/Sed: return only the regex match, not the whole line

问题描述:

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
分享给朋友:
您可能感兴趣的文章:
随机阅读: