Shixin Zeng wrote:
你如果只是想在运行这个命令的时候,改变一下locale,可以使用
$LC_ALL="C" your_cmd
如果想在从这个控制台启动的程序都使用这个locale,可以使用
$export LC_ALL="C"
$cmd1
$cmd2
如果想改变系统的locale,对于debian系统,先查看一下~/.bashrc,
~/.bash_profile, 然后/etc/bash_profile, /etc/environment里面的设置,
看看有没有locale相关的设置,如果如果有的话,改一下就行了
"C"这个locale是一个fallback用locale,在没有进行设置,或是设置错误的时
候, 使用的
谢谢!我按着你所说的方法,可以设置 locale 为 C 了。
但是该程序的输出仍然不正常。
请问你的计算机上是不是正常的?
debian:~/bash# cat a.txt
a a a
b b b
faris xiao aaaaa
xiao sheng bbbbb
debian:~/bash# ./awk2.sh 200 a.txt
Starting UID: %s
%s:%s:%d:%d:%s
%s,,/home/%s:/bin/bash
%s:%s:%d:%d:%s
%s,,/home/%s:/bin/bash
%s:%s:%d:%d:%s
%s,,/home/%s:/bin/bash
%s:%s:%d:%d:%s
%s,,/home/%s:/bin/bash
debian:~/bash# locale
LANG=zh_CN.GB2312
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
------------------------------------------------------------------------
a a a b b b faris xiao aaaaa
xiao sheng bbbbb