我在Ubuntu服务器12.04中写了一个shell脚本,它应该比较日志文件中的一些数据。 在日志文件中,date格式为:
[Mon Apr 08 15:02:54 2013]
正如你所看到的,它说明4月 。
根据man-page ,在bash中使用的选项是b或h 。
然而,无论我(在我的比较脚本中,还是直接在shell中)使用b , h或B都无关紧要。 他们都会返回本月的全名。
date +"%b" #Returns april (should have returned Apr) date +"%h" #Returns april (should have returned Apr) date +"%B" #Returns april (correct? Should it not be capital A?)
这当然使得根据date进行比较非常困难…
有没有人经历过这个,find了解决办法?
(我不确定这是否相关,但是我在安装服务器时select了挪威语作为安装语言。)
感谢@ toro2k的回答,我最终得出了一个可行的解决scheme:
DATE=`LC_ALL=C date +%b" "%d" "%H`
(这不起作用:
LC_ALL=C
DATE = date +%b" "%d" "%H
)
我已经测试过,问题似乎是挪威本地化:
$ LC_ALL=C date +%b Apr $ LC_ALL=nn_NO.UTF-8 date +%b april
因此,当您尝试解析日志文件时,应将LC_ALL
环境变量设置为C
,即
LC_ALL=C command
要么
export LC_ALL=C # your script code here export -n LC_ALL
有关语言环境设置的更多信息,请参阅Ubuntu wiki上的语言环境页面。