【发布时间】:2019-02-09 14:20:14
【问题描述】:
我有一个包含如下字段的文件:
OID ,"DATA","PARENT ","APP ","DSN ","JOB ",RUN_,START ,END ,NDICATOR,"SUB ",FROM_TIME ,TO_TIME ,TYPE ,TASK,CRIT,"NOD ","OWNER ","AUTH ","CMD ","DESC ",CONF,CYCL,TYPE,IND_CYCLIC,INT,MAX_
14082 ,"CEX ","HOME_TABLE ","ALERT "," ","job_ALERT_00002_home",1 ,18:30:00 GMT+00:00,18:30:50 GMT+00:00, ,"home ",19:30 ,18:55 ,OS ,Job ,0 ,"home ","system","user1 ","hostname ","Update points CHANGE232",0 ,1 ,Interval ,S ,00030M,
14082 ,"CEX ","HOME_TABLE ","ALERT "," ","job_ALERT_00002_home",2 ,19:00:10 GMT+00:00,19:01:00 GMT+00:00, ,"home ",19:30 ,18:55 ,OS ,Job ,0 ,"home ","system","user1 ","hostname ","Update points CHANGE232",0 ,1 ,Interval ,S ,00030M,
14082 ,"CEX ","HOME_TABLE ","ALERT "," ","job_ALERT_00002_home",3 ,19:30:20 GMT+00:00,19:31:10 GMT+00:00, ,"home ",19:30 ,18:55 ,OS ,Job ,0 ,"home ","system","user1 ","hostname ","Update points CHANGE232",0 ,1 ,Interval ,S ,00030M,
14082 ,"CEX ","HOME_TABLE ","ALERT "," ","job_ALERT_00002_home",4 ,20:00:30 GMT+00:00,20:01:20 GMT+00:00, ,"home ",19:30 ,18:55 ,OS ,Job ,0 ,"home ","system","user1 ","hostname ","Update points ",0 ,1 ,Interval ,S ,00030M,
.....
我只能从 time 中获取并添加 1 小时,为此我使用 awk 并存储在变量中,然后我使用 date 添加 1 小时
echo $(date -d "$variable 1hour" +%H:%M:%S)
所需的输出是在 START 标头中添加一小时:
19:30:00
20:00:10
20:30:20
21:00:30
只有一个命令就可以做到吗?
感谢和抱歉我的英语!
【问题讨论】:
-
请将该示例输入的所需输出添加到您的问题中。
-
嗨,所需的输出是 from_time hours +1 hour: 19:30:00 20:00:10 20:30:20 21:00:30
-
我已经编辑了主帖
-
您是否需要考虑夏令时和闰秒(即使用真实世界的日期/时间进行操作),或者您是否只需要在每小时 24 时添加 1?另外 - 你有可用的 GNU awk(试试
awk --version)。 -
您的意思是“将 1 小时添加到 START 列”,对吗? FROM_TIME 列的每一行都有值“19:30”。