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 [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED]
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.
pgpP59UuX5v3D.pgp
Description: PGP signature
