如何更改UTF文件的大小写

时间:2010-07-16 17:03:21

标签: linux bash text

我有大写的UTF文件,我想将所有单词更改为小写。

我试过了:

`$ tr '[:upper:]' '[:lower:]' < input.txt > output.txt`

但这只改变了没有重音的特征。

由于

3 个答案:

答案 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
ñ