Вернуть только совпадение с регулярным выражением, а не всю строку

У меня есть многострочный документ, из которого я хочу извлечь конкретное ключевое слово и слово после этого. Это выглядит так:

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

Есть способ сделать это?

Ответ 1

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