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

В скрипте bash, как сгенерировать случайную строку
Что такое эквивалент 'ps-T PID' в AIX для Linux?
Разделение архивов tar и их загрузка по одному
Как обновить bash на Mac OS X Yosemite
Как скопировать несколько файлов и переместить их в несколько папок с помощью терминала для Mac
Windows 10 Bash команда не работает, несмотря на включение режима разработчика и включение " Подсистема Windows для Linux"
grep файл и передать выходные данные в sed и сохранить выходные данные sed в файле
Как конвертировать специальные символы UTF-8 в Bash?
Как запустить SAMBA на MAC OS X с терминала?
Изменение атрибутов всех целевых символических ссылок в каталоге
Использование параметров в скрипте bash с помощью curl
последовательное выполнение команды SSH не работает в Ubuntu / Bash
WSL / Bash в Windows 10: не удалось создать пользователя UNIX, возвращен код ошибки 10
Bash скрипт для редактирования имени файла и перемещения файла.
использование xargs передача аргументов в Sub shell с помощью pipe

Как Grep до определенного символа или строки

мне нужно, чтобы извлечь данные журнала из многих terrabytes стоит файлов журнала. Дело в том, что данные, которые мне нужны, начинаются и заканчиваются шаблонами, которые я могу идентифицировать, но код между ними может быть от 10 до 100+ строк.

пример:

Start
# lots of lines here
End

в настоящее время, что я делаю grep -A 50 "Start", что дает мне начало и 50 строк после этого. Однако почти во всех случаях это больше или меньше, чем мне нужно. Больше означает, что результирующий файл отчета растет в гигабайтах больше, чем нужно, и меньше означает, что я не получаю необходимую информацию.

есть ли способ извлечь именно то, что мне нужно, используя стандартные инструменты Unix / Linux?

5
задан Sean Patrick Floyd
источник

1 ответов

попробуйте awk:

awk '/^Start/,/^End/' file

или если вы предпочитаете sed:

sed -n '/Start/,/End/p' file
3
отвечен Simon 2013-04-08 14:35:17
источник

Другие вопросы bash grep linux logfiles