Как получить часть файла после строки, которая соответствует выражению grep? (первый матч) - PullRequest
156 голосов
/ 18 августа 2011

У меня есть файл с около 1000 строк.Мне нужна часть моего файла после строки, которая соответствует моему выражению grep.

т.е.

$ cat file | grep 'TERMINATE'     // Its found on line 534

Итак, я хочу файл из строки 535 to line 1000 для дальнейшей обработки.

Как мне это сделать?

Ответы [ 12 ]

0 голосов
/ 14 февраля 2016

При этом будут напечатаны все строки от последней найденной строки "TERMINATE" до конца файла:

LINE_NUMBER=`grep -o -n TERMINATE $OSCAM_LOG|tail -n 1|sed "s/:/ \\'/g"|awk -F" " '{print $1}'`
tail -n +$LINE_NUMBER $YOUR_FILE_NAME
0 голосов
/ 18 августа 2011

sed - намного лучший инструмент для работы: файл sed -n '/ re /, $ p'

, где re - регулярное выражение.

Другой вариант - grep's --after-флаг контекста.Вам нужно ввести число, чтобы закончить на этом, использование wc в файле должно дать правильное значение для остановки.Объедините это с -n и выражением вашего соответствия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...