On Friday 14 November 2008 17:52, Petru Ratiu wrote: > 2008/11/14 Alex <[EMAIL PROTECTED]>: > > Din cite imi aduc aminte, la regexp, \s marcheaza un spatiu, iar \s+ > > marcheaza mai multe spatii. eu vreau sa scot dintr-un fisier toate > > liniile care incep cu unul sau mai multe spatii urmate de litera P > > > > Cum e corect: cu \s sau cu \s+, ca vad ca la mine ambele expresii produc > > acelasi rezultat :-( > > [\s+] nu inseamna ce vrei tu sa insemne
NU ESTE [\s+] ci [ \s+]! Ai gasit bug-ul fara sa stii :-)). Deci, expresia corecta ar fi: grep -E '^[ ]+[P]' test.txt sau ca tine fara extended regexp, grep '^[ ]\+P' test.txt > [] inseamna orice caracter din lista, + e interpretat ca atare. dap, asa este, doar ca in lista mea, inainte de \s+ eu aveam un spatiu, pe care grep-ul in gasea de fiecare data si in consecinta, rezultatul celor doua grep-uri era identic si foarte surprinzator. confuzia a pornit de la \s sau \s+ care merg binemersi cu perl, sed, etc, dar nu si aici. Aici regexpul asa cum era scris [ \s+] facea match pe orice linie care continea la inceput whitespace sau \ sau s sau +! Weekend placut, Alx _______________________________________________ RLUG mailing list [email protected] http://lists.lug.ro/mailman/listinfo/rlug
