为什么 sed/grep 不匹配带有变音符号的单词?
Why is sed/grep not matching words with diacritics?
我正在构建一个单词列表并希望使用
从文件中删除变音符号
sed -i -E '/[^a-zA-ZäöüÄÖÜß]/d' wordlist.txt
但是,这不会删除 e。 G。 André
我不明白为什么。另外 grep
不输出这一行。我错过了什么?
您根本缺少的是,这取决于您的语言环境和 Unicode 规范化,其次取决于您的 sed
是否支持这两种功能。
要可靠地过滤包含列表中以外的变音符号的行,可能会切换到可移植且可靠地支持所有这些 Unicode 概念的工具。
perl -CSD -nle 'print unless /[^a-zA-ZöüÄÖÜß]/' wordlist.txt
有点矛盾的是,几乎肯定会安装 Perl,而您的系统安装 sed
可能支持也可能不支持这些功能。
我正在构建一个单词列表并希望使用
从文件中删除变音符号sed -i -E '/[^a-zA-ZäöüÄÖÜß]/d' wordlist.txt
但是,这不会删除 e。 G。 André
我不明白为什么。另外 grep
不输出这一行。我错过了什么?
您根本缺少的是,这取决于您的语言环境和 Unicode 规范化,其次取决于您的 sed
是否支持这两种功能。
要可靠地过滤包含列表中以外的变音符号的行,可能会切换到可移植且可靠地支持所有这些 Unicode 概念的工具。
perl -CSD -nle 'print unless /[^a-zA-ZöüÄÖÜß]/' wordlist.txt
有点矛盾的是,几乎肯定会安装 Perl,而您的系统安装 sed
可能支持也可能不支持这些功能。