
Какую команду мне использовать, чтобы увидеть все строки из файла, начинающиеся со строки, которую я нашел с помощью grep?
поэтому я представляю себе что-то вроде хвоста, но начинающегося со строки, которую я идентифицирую с grep.
Например, я просматриваю журнал и могу определить точку, в которой есть время. Поэтому я хочу увидеть все строки журнала, которые идут после строки журнала, содержащей определенную дату и время.
решение1
это должно сработать:
sed -n -e "/pattern/,\$p" filename
решение2
Опция -A для grep может это сделать. Обычное использование - для контекстапослесовпадения и -B для контекстадосовпадений. Опция -m ограничивает количество совпадений.
grep -A1000000 -m1 <search> <file>
выведет до 1000000 конечных строк контекста (и чтобы это сработало, просто убедитесь, что число больше, чем количество строк в файле — и если ваш файл содержит более 1000000 строк, grep, вероятно, не тот инструмент, который вам нужен). Аналогичным образом,
grep -B1000000 -m1 <search> <file>
выведет все строки до первого совпадения включительно. (Насколько мне известно, это не является предполагаемым использованием этих опций, а является естественным побочным эффектом их работы: альтернативой является использование программы, отличной от grep.)