赞
踩
我正在Ubuntu服务器12.04中编写一个shell脚本,它应该比较日志文件中的一些数据.
在日志文件中,日期以以下格式给出:
[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?)
这当然使得根据日期进行比较非常困难……
有没有其他人经历过这个,并找到了解决方案?
(我不确定这是否相关,但在安装服务器时我选择挪威语作为安装语言.)
感谢@ toro2k在这里的答案,我最终找到了一个有效的解决方案:
DATE=`LC_ALL=C date +%b" "%d" "%H`
(这不起作用:
LC_ALL=C
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上的Locale页面.
标签:bash,shell,linux,ubuntu-12-04
来源: https://codeday.me/bug/20190625/1284970.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。