我有大写的UTF文件,我想将所有单词更改为小写。
我试过了:
`$ tr '[:upper:]' '[:lower:]' < input.txt > output.txt`
但这只改变了没有重音的特征。
由于
答案 0 :(得分:3)
最后我找到的最简单的方法是使用awk:
awk '{print tolower($0)}' < input.txt > output.txt
答案 1 :(得分:1)
这是因为默认字符类仅适用于标准ASCII,后者不包括大多数国际重音字符。如果您有一组已定义的字符,最简单的方法是简单地手动将特殊大写字符映射到特殊小写字符:
tr'ÄÖU[:upper:]''äöü[:lower:]'
如果你只有几个重音字符,这是可行的。
答案 2 :(得分:0)
不,问题是tr
不支持Unicode。
$ grep -o '[[:upper:]]' <<< JalapeÑo
J
Ñ
$ tr '[:upper:]' '[:lower:]' <<< JalapeÑo
jalapeÑo
使用[:upper:]
等的原因是为了处理ASCII之外的字符。否则,您可以使用[A-Z]
和[a-z]
。这也是为什么PCRE有一个名为[:ascii:]]
的字符类:
$ perl -pe 's/[[:ascii:]]//g' <<< jalapeño
ñ