Ответ 1
Попробуйте multitail инструмент, а также дайте возможность просматривать многострочные журналы одновременно, я уверен, что он позволяет вам применять regex в интерактивном режиме.
Мне нужно прочитать некоторые гигантские файлы журналов в системе Linux. Там много беспорядка в журналах. На данный момент я делаю что-то вроде этого:
cat logfile.txt | grep -v "IgnoreThis\|IgnoreThat" | less
Но это громоздко - каждый раз, когда я хочу добавить еще один фильтр, мне нужно выйти из less
и отредактировать командную строку. Некоторые из фильтров относительно сложны и могут быть многострочными.
Я бы хотел каким-то образом применить фильтры, поскольку я читаю журнал, и способ сохранить эти фильтры где-то.
Есть ли инструмент, который может сделать это для меня? Я не могу установить новое программное обеспечение, поэтому надеюсь, что оно уже будет установлено - например, меньше, vi, что-то в Python или Perl lib и т.д.
Изменение кода, генерирующего журнал для генерации меньше, не является вариантом.
Попробуйте multitail инструмент, а также дайте возможность просматривать многострочные журналы одновременно, я уверен, что он позволяет вам применять regex в интерактивном режиме.
Используйте команду &pattern
меньше.
Из man-страницы для менее
& шаблон
Display only lines which match the pattern; lines which do not match the pattern are not displayed. If pattern is empty (if you type & immediately followed by ENTER), any filtering is turned off, and all lines are displayed. While filtering is in effect, an ampersand is displayed at the beginning of the prompt, as a reminder that some lines in the file may be hidden. Certain characters are special as in the / command: ^N or ! Display only lines which do NOT match the pattern. ^R Don't interpret regular expression metacharacters; that is, do a simple textual comparison.
На основе ghostdog74 answer и less
manpage, я придумал следующее:
~/.bashrc
:export LESSOPEN='|~/less-filter.sh %s'
export LESS=-R # to allow ANSI colors
~/less-filter.sh
:#!/bin/sh
case "$1" in
*logfile*.log*) ~/less-filter.sed < $1
;;
esac
~/less-filter.sed
:/deleteLinesLikeThis/d # to filter out lines
s/this/that/ # to change text on lines (useful to colorize using ANSI escapes)
Тогда:
less logfileFooBar.log.1
- применяется фильтр, который применяется автоматически.cat logfileFooBar.log.1 | less
- просмотр журнала без фильтрацииЭто достаточно адекватно, но я все равно хотел бы иметь возможность редактировать фильтры "на лету".
см. man page. есть несколько вариантов, которые вы можете использовать для поиска слов, например. Он также имеет режим редактирования линии.
Там есть приложение от Casstor Software Solutions под названием LogFilter (www.casstor.com), которое может редактировать текстовые файлы Windows/Mac/Linux и может легко выполнять фильтрацию файлов. Он поддерживает несколько фильтров, а также регулярные выражения. Я думаю, это может быть то, что вы ищете.