如何使用AWK将YYYY-MM-DD-HH:MM:SS转为DD-MM-YYYY HH:MM格式
AWK 日期格式转换实现
你之前写的脚本跑不出正确结果,原因很明确:
- 只取了前三个横杠分隔的年、月、日字段,漏了第四段的时间内容
- 打印的时候没拼接要求的
-、空格分隔符,也没把时间里的秒数去掉
直接用下面这段通用awk代码就行,全版本awk都兼容:
awk -F'-' '{print $3"-"$2"-"$1" "substr($4,1,5)}'
逻辑说明
输入格式YYYY-MM-DD-HH:MM:SS用-做分隔符拆分后,四个字段含义:
- $1:四位年份YYYY
- $2:两位月份MM
- $3:两位日期DD
- $4:完整时间串HH:MM:SS
输出时直接按目标格式拼接字段,用substr($4,1,5)截取时间串前5位,就能拿到不带秒的HH:MM部分,不需要额外拆分。
效果验证
拿测试串2024-10-01-16:42:09跑上述命令,输出为:
01-10-2024 16:42
完全符合DD-MM-YYYY HH:MM的格式要求。
内容的提问来源于stack exchange,提问作者Chris Quek
相关产品推荐
相关产品推荐

