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

Скрипт Bash, который автоматически меняет раскладки клавиатуры и мыши на основе активного окна
команда bash watch с сохраненными цветами
Подсистема Windows для Linux без магазина Windows [дубликат]
Проверьте, соответствуют ли какие-либо параметры скрипта bash строке
Как я могу получить путь монтирования USB-устройства на OSX?
Как мой MacBook пинговать Google, но не мой роутер?
ls с glob не работает в сценарии bash
Таймер работает под скриптом bash в диалоговом окне
Почему я не могу выделить текст в эмуляторе терминала linux с помощью клавиш shift+Стрелка?
Как сделать Bash моей оболочки по умолчанию на Ubuntu?
Solaris 9-команда подсчета слов (wc) дает неправильный вывод
Поиск уникальных файлов на 2 дисках
Архивирование файлов размером более 2 ГБ в оболочке bash
Прозрачное использование временных файлов в качестве конвейера [закрыто]
Удалить OSX spotlight сочетание клавиш из командной строки

Как 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