2013-08-30 2 views
11

私は、特定のキーワードとその後ろの単語を抽出するための複数行文書を持っています。Egrep/Sed:行全体ではなく、正規表現の一致のみを返します。

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 

これを行う方法はありますか?それは十分な単純な作業のようですが、私はこれで壁に頭を打っています。ご協力いただきありがとうございます!

+0

の正確な複製[ショーに検索パターンに一致する単語だけをgrepすることはできますか?](http://stackoverflow.com/questions/1546711/can-grep-show-only-words-that-match-検索パターン) –

答えて

34

grep(1)には、一致する部分のみを出力するフラグ-oがあります。 man pageから:

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

あなたのパターンは、しかし、あなたが欲しいの出力を得るために右ではありません。試してみてください:

$ egrep -o 'key \w+' file 
key word1 
key word2 
関連する問題