繁体   English   中英

如何在UNIX中将文本文件转换为小写(但在UTF-8中)

[英]How to convert text file to lowercase in UNIX (but in UTF-8)

我需要将所有文本转换为小写,但不使用传统的“tr”命令,因为它不能正确处理UTF-8语言。

有一个很好的方法吗? 我需要一些UNIX过滤器,所以我可以在管道中处理它。

Gnu sed应该能够处理unicode。 尝试

$ echo 'Some StrAngÉ LeTTeRs 123' | sed -e 's/./\L\0/g'
some strangé letters 123

如果你可以使用Python,那么这样的代码可以帮助你:

import sys
import codecs

utf8input = codecs.getreader("utf-8")(sys.stdin)
utf8output = codecs.getwriter("utf-8")(sys.stdout)

utf8output.write(utf8input.read().lower())

在我的Windows机器上(抱歉:)我可以用它作为过滤器:

cat big.txt | python tolowerutf8.py > lower.txt3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM