Re: lug-bg: Напасване на отрицание в регулярни изрази, Бе: Елементарен въпрос за awk
- Subject: Re: lug-bg: Напасване на отрицание в регулярни изрази, Бе: Елементарен въпрос за awk
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Mon, 19 Jul 2004 15:42:48 +0300
On Mon, Jul 19, 2004 at 03:12:10PM +0300, Alexander Shopov wrote:
> Здравейте,
> какъв е израза за напасване на отрицания в регулярните изрази?
> Например:
> abv
> напасва всички редове, които съдържат
> abv
>
> Как напасвам редовете, които не съдържат abv?
Кратко и ясно: не можеш :( Регулярните изрази работят за откриване
на съвпадения, не на несъвпадения... Има едно изключение, виж по-долу,
но на теб няма да ти свърши работа.
[snip]
> Търся решение, което да роботи в GNU sed и awk.
>
> Не искам да правя шашмалогии с пускане на sed с -n, и след това магии с
> бранчове и p команда.
Не, със sed и awk няма да стане. Единственото, което може да използва
регулярни изрази и да отбележи НЕсъвпадения, е regexp engine в по-новите
версии на Perl: мисля, че от 5.6 нататък (със сигурност в 5.7 и 5.8) се
поддържат lookaheads, които ти позволяват да направиш ^(?!.*abv)
Sed/awk обаче не поддържат такъв синтаксис.
Поздрави,
Петър
--
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
because I didn't think of a good beginning of it.
Attachment:
pgp_AvUU2UPE9.pgp
Description: PGP signature
|