Мне нужна помощь с Грепом, чтобы начать с раздела

У меня есть текстовые файлы, из которых я хочу grep отредактировать код. Цель, которую я пытаюсь достичь, - начать просмотр в определенной строке и amp; то сможете читать что-нибудь ниже. Например. В приведенном ниже тексте, как просмотреть текстовый файл в начальной точке желтого. Я хочу просмотреть содержимое «желтого», а также все, что под ним, независимо от того, что это за содержание.

green
blue
cyan
magenta
purple
brown
yellow
red
orange
more orange
more blue
this is enough
1
задан 31 January 2016 в 03:31

4 ответа

Вы можете сделать это:

awk '/yellow/{f=1}f' file

где «файл» - это имя файла, содержащего ваш текст.

5
ответ дан 23 May 2018 в 13:53

Не grep, но с использованием sed:

sed -n '/^yellow$/,$p' file
-n: запрещает печать /^yellow$/,$: диапазон адресов, который идет от первого появления строки, соответствующей точно yellow к последней строке включительно p: печатает строки в диапазоне адресов
% sed -n '/^yellow$/,$p' file
yellow
red
orange
more orange
more blue
this is enough
5
ответ дан 23 May 2018 в 13:53

Поздно к стороне:)

Использование grep:

grep -Pzo '(?s)\n\Kyellow\n.*' file.txt
-P позволяет нам использовать Perl-совместимое Regex -z делает входной файл разделенным ASCII NUL, скорее, что новая строка -o принимает только желаемую часть (?s) - модификатор DOTALL, позволяет нам сопоставлять новую строку с использованием токена . (любой символ). В \n\K, \n соответствует новой строке, \K отбрасывает совпадение yellow\n.*, совпадающее с yellow, за которым следует новая строка, и все после этого также выбирается и отображается на выходе.

Пример:

% grep -Pzo '(?s)\n\Kyellow\n.*' file.txt
yellow
red
orange
more orange
more blue
this is enough

Использование little python:

#!/usr/bin/env python2
with open('file.txt') as f:
    lines = f.readlines()
    print ''.join(lines[lines.index('yellow\n'):])
-P позволяет нам для использования Perl-совместимого Regex

-P позволяет использовать Perl-совместимый Regex

-z, делает входной файл разделенным ASCII NUL, а что новая строка [d6 ] -z делает входной файл разделенным с помощью ASCII NUL, скорее, чем новая строка

5
ответ дан 23 May 2018 в 13:53
  • 1
    Приятно, но вы должны упомянуть, что код Python находит только целые строки, которые равны «желтому», он не обнаруживает, например. такие как «более желтые». – Byte Commander 31 January 2016 в 16:33
  • 2
    @ByteCommander Из примера OP я думаю, что ясно, что они хотят совместить только yellow в строке..также, если это не так, нам нужно изменить python one algo .. – heemayl 1 February 2016 в 05:21
  • 3
    Да, конечно. В любом случае это не было критикой, просто намек на улучшение ответа. Кто-то другой, читающий это, может предположить, что код работает как grep и не соответствует только полным строкам. Я поддержал кстати. – Byte Commander 1 February 2016 в 11:09

Поскольку вопрос относится к просмотру файла, всегда есть хороший ol '

less +/yellow file
4
ответ дан 23 May 2018 в 13:53
  • 1
    Не знал, что less может это сделать. Очень хорошо ! – Sergiy Kolodyazhnyy 1 February 2016 в 02:11

Другие вопросы по тегам:

Похожие вопросы: