微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash:date“%b”和date“%h”当然date“%B”是月份的全名吗?

我在ubuntu服务器12.04中写了一个shell脚本,它应该比较日志文件中的一些数据。 在日志文件中,date格式为:

[Mon Apr 08 15:02:54 2013]

正如你所看到的,它说明4月

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

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

linux多次调用watch命令

Ubuntuterminal – 使用gnu并行读取文件夹中所有文件的行

如何恢复部分复制文件的SCP的?

Bash – 在当前terminal的另一个terminal上启动一个新的命令实例

如何在bash中简化重复的redirect

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

如何使用sed以指定的顺序提取行?

最快可能的grep

查看昨天/今天的日志

将shell函数移植到cmd.exe:是否可以在启动时自动获取脚本?

diff命令忽略新目录中的新文件

我已经测试过,问题似乎是挪威本地化:

$ 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上的语言环境页面

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐