是否有特定的正则表达式类,包括欧元符号?根据grep 手册, [:print:] 类(AFAIK € 是可打印的)和 [:punct:] 类不包含欧元符号,因为它们仅包含语言环境(en_US.UTF-8)和 ASCII 标点字符(包括$)
$ echo "I can has 5€ ?" | grep -o "[[:print:]*"
I can has 5
是否有另一种解决方案(因为我猜这个问题将与美元以外的每个货币字符一起出现)可以让我捕捉每个可打印的字符?
编辑 在玩腻子设置后,我在打印文件时设法显示了€,但是 grep-ing 它的行为很奇怪。最初我什至无法打印“€”,但是在将腻子编码更改为 cp1252(而不是 Unicode)后,我可以看到这个标志。grepping 仍然不起作用
$ cat test.bah
I can has 5€ ?
$ cat test.bah | grep -o '[[:print:]]*'
I can has 5
?
$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
...