Я хочу использовать awk для печати 5 строк до и 5 строк после регулярного выражения совпадения (Начните с ОШИБКИ и завершите sh с включением INFO | WARN | DEBUG | TRACE). Также мне нужно напечатать номер строки. Мне просто удалось напечатать номер строки
cat foo | awk '/\[ERROR\]/,/\[(INFO |WARN |DEBUG|TRACE)/{print NR":"$0}'
Мне не важно найти решение с помощью команды grep
Например, файл содержит:
DEBUG
DEBUG
DEBUG
TRACE
TRACE
INFO
INFO
ERROR
INFO
INFO
INFO
DEBUG
DEBUG
DEBUG
DEBUG
Выходные данные должны быть:
3: DEBUG
4: TRACE
5: TRACE
6: INFO
7: INFO
**8: ERROR
9: INFO**
10: INFO
11: INFO
12: DEBUG
13: DEBUG
14: DEBUG
Звезды отмечают регулярное выражение совпадения (начало в ОШИБКЕ, конец в ИНФО)