gpt4 book ai didi

linux - Bash:日期 "%b"和日期 "%h"(当然还有)日期 "%B"给出月份的全名?

转载 作者:IT王子 更新时间:2023-10-29 01:23:35 31 4
gpt4 key购买 nike

我正在 Ubuntu 服务器 12.04 中编写一个 shell 脚本,它应该比较日志文件中的一些数据。在日志文件中,日期以以下格式给出:

[Mon Apr 08 15:02:54 2013]

如您所见,它表示 Apr

根据man-page ,为此在 bash 中使用的选项是 bh

然而,无论我(在我的比较脚本中,还是直接在 shell 中)使用 bhB 都没有关系。他们都返回月份的全名。

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

有关语言环境设置的更多信息,请参阅 Locale Ubuntu wiki 上的页面。

关于linux - Bash:日期 "%b"和日期 "%h"(当然还有)日期 "%B"给出月份的全名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15882670/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com