Visada, kai prisireikia ką nors grepinti, naudoju perl like regexp su -P flagu, nes tokių jau išmokau, kai kitoms kalboms reikėjo, o kuo skriasi defaultiniai bash naudojami regexp? Kur tai aiškiai aprašyta?
Nežinau, kodėl nepalikta, bet gali būti ir dėl to, kad BRE kasdieniniam naudojimui yra gan patogus ir neperkrautas specialią prasmę turinčiais simboliais.
Visada, kai prisireikia ką nors grepinti, naudoju perl like regexp su -P flagu, nes tokių jau išmokau, kai kitoms kalboms reikėjo, o kuo skriasi defaultiniai bash naudojami regexp? Kur tai aiškiai aprašyta?
grep komanda palaiko šiuos Regular Expression standartus:
BRE - Basic Regular Expression (grep)
ERE - Extended Regular Expression (grep -E)
PCRE - Perl-compatible Regular Expression (grep -P)
Lentelėje žemiau surašiau kuo jie skiriasi:
Iš esmės BRE ir ERE yra labai panašūs, o PCRE yra visiškai atskiras reikalas,
turintis gausybę papildomų funkcijų, kurių surašiau tik kelias...
Informacijos šaltiniai:
man grep
man pcrepattern
http://en.wikipedia.org/wiki/Regular_expression
http://en.wikipedia.org/wiki/Perl_Compa ... xpressions
Kodėl tada nepaliktas tik PCRE, jei jis visokeriopai pranašesnis? Matyt dėl istorinių priežasčių ir backwards compatibility.
Nežinau, kodėl nepalikta, bet gali būti ir dėl to, kad BRE kasdieniniam naudojimui yra gan patogus ir neperkrautas specialią prasmę turinčiais simboliais.
Tema perkelta iš https://legacy.ubuntu.lt/forum/viewtopic.php?f=6&t=7258