我有一个文本文件,其内容类似于:
12,34 EUR
5,67 EUR
...
在“EUR”之前有一个空格,我忽略了0,XX欧元。
我尝试了:
grep '[1-9][0-9]*,[0-9]\{2\}\sEUR' => 没有匹配!
grep '[1-9][0-9]*,[0-9]\{2\} EUR' => 成功匹配!
grep '[1-9][0-9]*,[0-9]\{2\}\s*EUR' => 成功匹配!
grep '[1-9][0-9]*,[0-9]\{2\}\s[E]UR' => 成功匹配!
请问有人能解释一下为什么我不能使用 \s
,但是 \s*
和 \s[E]
可以匹配吗?
操作系统:Ubuntu 10.04,grep v2.5
[:space:]
,例如:cat file | grep "[[:space:]]"
。意思是在文件中查找任何空格字符。 - Kiril Kirov\s
。我会说它的行为是“未定义的”。请改用[:space:],它在旧版和新版grep中都有记录。 - Kamal