如果时间戳不存在,有没有办法将秒添加到时间戳中?
Posted
技术标签:
【中文标题】如果时间戳不存在,有没有办法将秒添加到时间戳中?【英文标题】:Is there a way to add the seconds to a time stamp if it is not present? 【发布时间】:2019-07-07 19:54:16 【问题描述】:我有一个贯穿地图的数据文件。其中一个字段读取日期/时间戳。该地图设置为读取 MM/DD/YYYY HH:MM:SS,并且大多数情况下都可以使用。有时时间格式不正确,并且未提供 :SS。
正确数据: ,1/11/2019 13:53:46,
不正确的数据: ,1/16/2019 11:27,
这是一个旧的 AIX 5.3 机器。我尝试了一些 sed 命令和一些 awk 命令,但都没有成功。
sed 's/[0-9][0-9]:[0-9][0-9],/[0-9][0-9]:[0-9][0-9]:00,/g'
我需要看看 ,1/16/2019 11:27:00,
但我得到了 ,1/16/2019 [0-9][0-9]:[0-9][0-9]:00,
【问题讨论】:
试试sed -E 's/( [0-9]2:[0-9]2),/\1:00,/g'
或sed 's/\( [0-9][0-9]:[0-9][0-9]\),/\1:00,/g'
谢谢,sed 's/( [0-9][0-9]:[0-9][0-9]),/\1:00,/g' 完美.
【参考方案1】:
你可以使用
sed 's/\( [0-9][0-9]:[0-9][0-9]\),/\1:00,/g'
模式匹配:
\( [0-9][0-9]:[0-9][0-9]\)
- 捕获组 1(该值在替换模式中用 \1
引用):
- 空格
[0-9][0-9]
- 两位数
:
- 冒号
[0-9][0-9]
- 两位数
,
- 逗号
看到这个POSIX BRE regex online demo。
【讨论】:
以上是关于如果时间戳不存在,有没有办法将秒添加到时间戳中?的主要内容,如果未能解决你的问题,请参考以下文章