Mam plik tekstowy zawierający coś takiego:
12,34 EUR
5,67 EUR
...
Przed „EUR” jest jedna spacja i ignoruję 0, XX EUR.
Próbowałem:
grep '[1-9][0-9]*,[0-9]\{2\}\sEUR' => didn't match !
grep '[1-9][0-9]*,[0-9]\{2\} EUR' => worked !
grep '[1-9][0-9]*,[0-9]\{2\}\s*EUR' => worked !
grep '[1-9][0-9]*,[0-9]\{2\}\s[E]UR' => worked !
Czy ktoś może mi wyjaśnić, dlaczego nie mogę użyć, \s
ale \s*
i \s[E]
dopasowane?
System operacyjny: Ubuntu 10.04, grep v2.5
[:space:]
np. w ten sposób:cat file | grep "[[:space:]]"
\s
w ogóle. Powiedziałbym, że jego zachowanie jest „nieokreślone”. Zamiast tego użyj [: space:], co działa zgodnie z dokumentacją w starym i nowym grep.