J'ai un fichier texte, contenant quelque chose comme:
12,34 EUR
5,67 EUR
...
Il y a un espace avant «EUR» et j'ignore 0, XX EUR.
J'ai essayé:
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 !
Quelqu'un peut-il m'expliquer, pourquoi je ne peux pas utiliser \s
mais \s*
et \s[E]
correspondre?
Système d'exploitation: Ubuntu 10.04, grep v2.5
[:space:]
, par exemple. comme ceci:cat file | grep "[[:space:]]"
\s
tout. Je dirais que son comportement est "indéfini". Utilisez plutôt [: space:], qui fonctionne comme documenté dans l'ancien et le nouveau grep.