Хвост, кошка и grep файл одновременно

2564
Toni Kostelac

Поэтому мне нужно следить за файлом журнала в linux, и я хотел бы отслеживать содержимое (чтобы увидеть все предыдущие записи), а также отслеживать файл журнала, одновременно используя grep для отфильтровывания материала, который я хочу видеть из журнала., Также было бы неплохо, если бы хвост продолжался там, где команда cat перестала отображать записи.

Как бы я поступил так?

РЕДАКТИРОВАТЬ:

Чтобы сделать мой вопрос немного более понятным, вот что я хочу:

log.txt: Line 1 <--- Starting from here is what lines I need Line 2 Line 3 Line 4 Line 5 <--- Here is where the tail command will start displaying Line n - 1 Line n <--- Here is where the tail command will continue to go 

Я должен быть в состоянии схватить все это и понять это.

0

2 ответа на вопрос

3
JanS

Я не знаю, если это то, что вы ищете, но вы можете попробовать это:

grep "pattern you are looking for" log.txt;tail -n 0 -f log.txt | grep "pattern you are looking for" 

он вызывает две команды одна за другой. сначала вы извлекаете интересующий шаблон из файла журнала, а затем запускаете tail -f в конце файла, перенаправляя вывод в grep.

однако я предлагаю вам сделать это, используя только одну команду, вы можете указать количество строк, которые будут отображаться хвостом, используя параметр -n (+1 означает в первой строке):

tail -n +1 -f log.txt | grep "pattern you are looking for" 
2
fedorqui

Я бы пошел на что-то вроде

tail -f log_file | grep -E "^|your_pattern" 

Проверьте это, открыв две вкладки.

Во первых, запустите эту команду

while :; do echo "$v"; ((v++)); sleep 1; done > mytest 

То есть генерировать непрерывный поток, добавляя в файл число каждую секунду mytest

Затем в другой вкладке, скажем

tail -f mytest | grep -E "^|2" 

То есть tailфайл непрерывно и grepпо двум шаблонам: ^все совпадает и 2. Таким образом, ^соответствует все, что делает все строки, которые будут показаны, и 2просто соответствует тем линиям, которые вы хотите выделить. Больше информации об этом трюке в «Grep», который выделяет вместо фильтра .

Я отредактировал свой вопрос, чтобы быть более точным в том, что мне нужно. Toni Kostelac 8 лет назад 0
+1 за милый трюк. Оригинальный вопрос невозможен, хотя. MariusMatutiae 8 лет назад 1

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