这里Oct 01
必须打印为Oct 1
没有 0 的 ie。我需要在 Oct 和 1 之间有两个空格,例如Oct 1
。
答案1
使用 GNU date
:
date -d "Oct 01 20:00" "+%b %_d %k:%M"
在哪里:
%b
:区域设置的月份名称缩写(例如 Jan)%_d
:一月中的某一天(空格填充)%k
:小时(0..23)%M
:分钟 (00..59)
输出:
Oct 1 20:00
答案2
如果您想在某些文本中找到这些字符串时进行转换,并且仅当它们遵循特定Mmm dd HH:MM
模式时,在 GNU 或 FreeBSD 系统(及其衍生系统)上,您可以这样做:
sed -E "s/($(locale abmon|tr ';' '|')) 0([0-9] [0-2][0-9]:[0-5][0-9])/\1 \2/g"
它从 的输出中获取月份名称缩写列表,locale abmon
以便适应调用者的本地化偏好。用于LC_ALL=C locale abmon
强制使用英文月份名称缩写。