Используйте, tail -F <logfile> | grep '<string>'
и вы увидите только строки, содержащие <string>
.
Удалите предыдущие строки в хвосте или меньше
291
Qohelet
Я использую tail -f
или less +F
для наблюдения за изменением файла журнала. Я знаю с определенного момента, что строки, которые я ищу, появятся.
Так что весь этот мусор до этого момента мне не нужен и я бы хотел как-то его убрать.
Есть ли способ сделать это? Не должно быть, tail
или less
я не ограничен этим.
Предположим, что входные данные были `seq 100`, и было известно, что только строки больше чем * 50 * имели необходимые строки. Скажем, необходимые строки: * 61 * и * 63 * ... является ли цель печати от * 61 * до * 100 * (40 строк) или просто * 61 * и * 63 *, (2 строки)?
agc 6 лет назад
0
Я хотел бы, чтобы это было так ясно. Я вижу программу и журналы параллельно, и когда достигается определенная точка в программе, я знаю, что ожидаемая строка появится в ближайшие 3-5 секунд. Все, что написано в журнале до этого момента, не имеет отношения к делу, и я хотел бы удалить его.
Qohelet 6 лет назад
0
1 ответ на вопрос
0
gmelis
Я не знаю, какую строку я жду. Я просто знаю, в какие сроки он будет записан в лог-файл.
Qohelet 6 лет назад
0
Итак, у вас есть что-то вроде этого времени, например, с 09:45:00 до 10:20:59, например? `awk` может помочь в таком случае, если вы не хотите написать какую-либо программу анализа, использующую` python`, `perl`,` bash` или любой другой язык сценариев. Или вы можете использовать функцию * range * для ʻsed`, как в `tail -F / var / log / syslog | sed -n -e '/ 09:45: /, / 10: 15: / p'`, чтобы напечатать все записи журнала с 09:45 до 10:15.
gmelis 6 лет назад
0
В начале есть время, но иногда приходит более 50 журналов в секунду (не всегда, но иногда). Может быть, мне нужно разделить 11:31:33 пополам и выбросить все до и все за первую четверть 11:31:36 тоже не так интересно
Qohelet 6 лет назад
0
Хорошо, там * должно быть что-то, что вы ищете. `sed`,` awk`, `grep` и piping могут получить вас достаточно далеко, плюс вы можете ограничить то, что вы ищете, с помощью` regex`es вида `/09:45:.*source_of_message.*begin_of_interesting_message/ , / 10: 15. * конец / `
gmelis 6 лет назад
0
Пока я в основном знаю, на что не похожа эта запись. В основном такие вещи, как `Client: gotNewMsg type M_TRANSACTION` и другие, как они появляются повсюду. До сих пор я в основном ищу сообщения, отличные от них, и ссылаются на конкретные объекты (но я не знаю, как они названы, боюсь, это тоже отчасти догадывается)
Qohelet 6 лет назад
0
В таком случае, почему бы вам не начать * исключать * строки? Завершите свою командную строку чем-то вроде `..... | grep -v 'not_this \ | nor_this \ | nor_this'`, то есть `... | grep -v 'Клиент: получен NewMsg тип M_TRANSACTION'`
gmelis 6 лет назад
0
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
6
Просмотр журнала в Windows
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux