Получить все в файле после строки grep'd - PullRequest
6 голосов
/ 11 мая 2011

Вчера возникла ситуация, когда кто-то нуждался во мне, чтобы отделить хвостовую часть файла, определяемую как все после определенной строки (ради аргумента "FOO"). Мне нужно было сделать это немедленно, поэтому я выбрал вариант, который, как я знал, сработал, и проигнорировал «Правильный путь» или «Лучший путь» и выбрал следующее:

grep -n FOO FILE.TXT | cut -f1 -d":" | xargs -I{} tail -n +{} FILE.TXT > NEWFILE.TXT

Меня поразило то, что для одноэлементного значения использовалось xargs. Я думал, что смогу согнуть свой Google-Fu в этом, но мне было интересно посмотреть, что люди из SO-Land придумали для этой ситуации

Ответы [ 3 ]

15 голосов
/ 11 мая 2011
sed -n '/re/,$p' file

это то, что происходит со мной сразу.

10 голосов
/ 11 мая 2011

Рассматривали ли вы просто использование аргумента grep '--after-context'?

Что-то вроде этого должно сработать, с достаточно большим числом, чтобы завершить конец файла:

grep --after-context=999999 -n FOO FILE.TXT > NEWFILE.TXT
1 голос
/ 24 января 2014

Аналогично ответу геокозавра выше, но эта опция исключает, а не включает совпадающую строку:

sed '1,/regex/d' myfile

Нашел этот здесь после попытки выбора выше.

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