Re: lug-bg: grep и регулярни изрази
- Subject: Re: lug-bg: grep и регулярни изрази
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Thu, 17 Feb 2005 10:22:37 +0200
On Thu, Feb 17, 2005 at 09:57:54AM +0200, Andrei Boyanov wrote:
> Qsin wrote:
>
> >Здравейте,
> >
> >Може би въпроса ми е лаишки, за което се извинявам предварително.
> >
> >При следната команда нямам проблеми:
> >
> >tail -f -n 50 /var/log/syslog | grep -v kernel
> >
> >При тази също:
> >
> >tail -f -n 50 /var/log/syslog | grep -v kernel | grep -v dhcpd
> >
> >Но при тази компютъра заспива и не вади нищо:
> >
> >tail -f -n 50 /var/log/syslog | grep -v kernel | grep -v dhcpd | grep
> >-v named
>
> Принципно използването на -f при този слуай не е логично. Интересно е
> наистина обаче защо без него работи, с него и 2 греп-а работи, с с -ф
> и 3 греп-а не работи ...
Предполагам, че част от причината може да бъде свързана с буфериране;
дали резултатът ще се промени, ако на всички grep-ове им се даде
допълнително и --line-buffered? (ако, разбира се, става дуна за GNU
grep :)
Ако нещата наистина се променят, тогава определено става дума за
буфериране и тогава вече нищо не е ясно - общо-взето взаимодействието
между stdio, ядрото и pipe-овете понякога може да бъде *много* странно :)
А иначе за оригиналния въпрос за търсене на повече от един низ има
няколко начина; за повече информация - докиментацията, вкл. manpage
на grep и другите:
grep -ve 'kernel\|dhcpd\|named'
grep -vEe 'kernel|dhcpd|named'
egrep -ve 'kernel|dhcpd|named'
fgrep -ve kernel -e dhcpd -e named
sed -nEe '/kernel|dhcpd|named/p' (BSD sed)
sed -nre '/kernel|dhcpd|named/p' (GNU sed)
awk -e '!/kernel|dhcpd|named/ {print}'
perl -nle 'print unless /kernel|dhcpd|named/'
perl -nle '/kernel|dhcpd|named/ or print'
perl -nle 'print unless /kernel|dhcpd|named/o'
perl -nle '/kernel|dhcpd|named/o or print'
...и много, много други :)
Поздрави,
Петър
--
Peter Pentchev roam@xxxxxxxxxxx roam@xxxxxxxx roam@xxxxxxxxxxx
PGP key: http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553
I had to translate this sentence into English because I could not read the original Sanskrit.
Attachment:
pgpZFwQy13VCW.pgp
Description: PGP signature
|