概述
- 最近在项目上,因为locale中的字符集影响,导致脚本输出不正常,无法正确去处理,在这篇博客中,简单地说明下locale对sed,awk等输出流处理工具的影响。
locale
-
在Linux中通过locale来设置程序运行的不同语言环境,locale由ANSI C提供支持。locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8,zh代表中文,CN代表大陆地区,UTF-8表示字符集。
-
在locale环境中,有一组变量,代表国际化环境中的不同设置:
- LC_COLLATE
定义该环境的排序和比较规则
影响命令:sort
- LC_COLLATE
[root@redhat6 ~]# export LC_COLLATE=zh_CN.utf8;sort /tmp/test
1111
2222
aaaa
AAAA
BBBB
cccc
CCCC
英文测序
中文测序
[root@redhat6 ~]# export LC_COLLATE=en_US;sort /t