linux – Bash:日期“%b”和日期“%h”(当然还有)日期“%B”
发布时间:2020-12-13 23:04:55 所属栏目:Linux 来源:网络整理
导读:我正在Ubuntu服务器12.04中编写一个 shell脚本,它应该比较日志文件中的一些数据. 在日志文件中,日期以以下格式给出: [Mon Apr 08 15:02:54 2013] 如你所见,它表明4月 根据man-page,bash中使用的选项是b或h. 然而,我(在我的比较脚本中,或直接在shell中)使用b
我正在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页面. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |