Видео ролики бесплатно онлайн

Смотреть узб видео

Официальный сайт audiophilesoft 24/7/365

Смотреть видео бесплатно

uscr 08.05.2012 11:04

Есть вопрос!Tail -f + egrep в скрипте.

Здравствуйте. Возникла проблема почти такая же, как в соседнем вопросе: "Почему не работает перенаправление в файл?". Нужно в реальном времени разбирать строки из некоторого файла. Конструкция выглядит так:

1
2
3
4
tail -fn0 $FILE | while read i
do
тут разбираем строки
done



Есть желание вставить между tail -fn0 $FILE и while read i ещё и греп (egrep в данном случае). Проблема в том, что при внедрении egrep'а дальше по пайпу ничего не проходит, а при завершении скрипта, всё "нагрепаное" вываливается. Как добиться работы в реалтайме?

P.S.
В конечном итоге строка выглядит так:

tail -fn0 $FILE | egrep "$PRIMARY_FILTER" | while read i


P.P.S

Решил так:

tail -fn0 $FILE | awk "/($PRIMARY_FILTER)/ {print; fflush()}" | while read i Работает. Но вопрос оставляю для общего развития.


Тэги:
+ 1 -
Похожие Поделиться

ananas 08.05.2012 12:28 #
+ 1 -
egrep --line-buffered "$PRIMARY_FILTER"
jh 10.05.2012 04:31 #
+ 0 -
а почему не Sed?
uscr 10.05.2012 10:09 #
+ 0 -
А чем круче?
jh 10.05.2012 11:35 #
+ 0 -
это поточный редактор специально заточеный для построчной обработки текстовых файлов. правда регэкспы реализованы несколько по-другому. круче или нет зависит от задачи.
wilful 11.05.2012 12:22 #
+ 0 -
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash

Filter1(){
local file=${1} Filter=${2}
while read i; do
printf "%s\n" "${i}" | egrep "${Filter}"
done < <(tail -f ${file})
}

Filter2(){
local file=${1} Filter=${2}
exec 6<&0
exec < <(tail -f ${file})
while read i; do
printf "%s\n" "${i}" | egrep "${Filter}"
done
exec 0<&6 6<&-
}

Filter3(){
local file=${1} Filter=${2}
{
while read i; do
printf "%s\n" "${i}" | egrep ${Filter}
done
} < <(tail -f ${file})
}


Filter1 '/var/log/nginx/access.log' 'wilful'
#Filter2 '/var/log/nginx/access.log' 'wilful'
#Filter3 '/var/log/nginx/access.log' 'wilful'



Тоже самое в принципе, только фильтр уже в теле программы и можно одной функцией по разным условиям в разные потоки выводить или в массиве сохранить

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн