Вернуть только совпадение с регулярным выражением, а не всю строку
У меня есть многострочный документ, из которого я хочу извлечь конкретное ключевое слово и слово после этого. Это выглядит так:
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