为什么sed/grep不匹配带有变音符号的单词?



我正在构建一个单词列表,并希望使用

从文件中删除变音符。
sed -i -E '/[^a-zA-ZäöüÄÖÜß]/d' wordlist.txt

然而,这并没有消除例如André,我不明白为什么。grep也不输出这一行。我错过了什么?

您根本忽略的是,这取决于您的语言环境和Unicode规范化,其次取决于您的sed是否支持这两种功能。

可靠地过滤包含除列表中的变音符符以外的其他字符的行,可能需要切换到可移植且可靠地支持所有这些Unicode概念的工具。

perl -CSD -nle 'print unless /[^a-zA-ZöüÄÖÜß]/' wordlist.txt

有点矛盾的是,Perl几乎肯定会被安装,而您的系统安装的sed可能支持也可能不支持这些工具。

最新更新