#regex #grep
Вопрос:
Мне нужно сопоставить конец файла после совпадения слов в bash. У меня есть такое сообщение:
line 1
line 2
line 3
key line
line 5
line 6
Я притворяюсь, что получаю все после «ключевой строки», поэтому мой вывод будет:
line 5
line 6
Как я могу сделать это с помощью bash?
Я пробовал grep -o -P '(?<=key linen)[sS]*'
, но это не сработало, хотя это сработало при тестировании в https://regexr.com/
Ответ №1:
grep
является линейным. Это плохо работает, когда вы хотите выполнять поиск по строкам.
sed
готов к этой работе. Это приведет d
к удалению всех строк от строки 1
до содержащей key line
, оставляя только строки после нее:
$ sed '1,/key line/d' test.txt
line 5
line 6