如何在KornShell脚本中将日期格式化为DD-MON-YYYY?

4

如何在KornShell (ksh)脚本中按DD-MON-YYYY格式格式化日期?

我尝试了以下方法:

date '+%d-%h-%Y'

它返回 04-Nov-2009,我需要将 Nov 改为 NOV(全部大写)。日期实用程序能否实现这一点?
3个回答

5
这是最终在Unix(Solaris)上运行的方法。
date '+%d-%h-%Y' | tr [:lower:] [:upper:]

返回:2009年11月4日


5

在GNU coreutils中(至少在版本6.9.92.4中),^字符强制转换为大写字母,例如date命令:

$ date '+%d-%^h-%Y'
04-NOV-2009

很不幸,^POSIX标准中并不是date的一部分,所以如果你不在GNU系统上,你可能需要使用第二个命令,例如由@martin clayton建议的tr来解决问题。


@Mark Rushakoff - 这在uxix或linux上都不起作用。当我执行时,我得到以下结果:04-^Nov-2009。 - AieshaDot
建议“置顶”?请引用具体答案。订单会随着投票而改变。 - S.Lott

2
如果您的环境不支持插入符号大写,您可以自己将其转换为大写。
date '+%d-%h-%Y' | tr 'a-z' 'A-Z'

1
@martin clayton - 这个语法在Linux上可以工作,但在Unix上却不行,而我的脚本正在运行在一个Unix系统上。然而,你的代码片段指引了我正确的方向。谢谢! - AieshaDot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接