Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 将文本文件的gmt更改为带有awk和日期的一行_Date_Awk - Fatal编程技术网

Date 将文本文件的gmt更改为带有awk和日期的一行

Date 将文本文件的gmt更改为带有awk和日期的一行,date,awk,Date,Awk,我有一个包含以下字段的文件: 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 ,"

我有一个包含以下字段的文件:

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, 
.....
我只能从时间中获取并添加1小时,对于这些,我使用awk并存储在变量中,然后使用date添加1小时

echo $(date -d "$variable 1hour" +%H:%M:%S)
所需输出为添加一小时至开始标题:

19:30:00
20:00:10
20:30:20
21:00:30
只需要一个命令就可以得到吗


谢谢,对不起我的英语

我会在该文件上使用一个合适的CSV解析器——我会允许引用的字段包含逗号

下面是一些执行CSV解析和日期算法的python:

python3 <<'END'
import csv, datetime, re
hour = datetime.timedelta(hours=1)
file = "file.csv"
with open(file) as f:
    reader = csv.reader(f)
    headers = reader.__next__()
    for row in reader: 
        t = datetime.datetime.strptime(re.sub(r':(\d\d)$', r'\1', row[7]), '%H:%M:%S %Z%z')
        print((t + hour).strftime("%T"))
END

(注意,我不每天使用python,因此这可能不是惯用的python)

使用GNU awk for FPAT和gensub():


上面引用的字段可以包含逗号。

请将该示例输入的所需输出添加到您的问题中。您好,所需输出是from_time hours+1 hours:19:30:00 20:00:10 20:30:20 21:00:30我已经编辑了主要帖子您是否需要考虑夏令时和闰秒(即使用真实世界的日期/时间操作)或者你只需要每小时加1,24小时包装?还有-你有GNU awk可用吗(试试
awk--version
)。你的意思是“在开始栏增加1小时”,对吗?FROM_TIME列每行的值为“19:30”。哇!若我想修改下一个字段(END),我应该在awk中添加其他-v修饰符吗?我在试着破解你的密码。谢谢否。请在GNU awk手册中查找并查看它们的功能。注意脚本中的
$8
?这代表第8个字段,起始字段,-重复我对该字段所做的操作,对任何其他字段进行相同的更改。
19:30:00
20:00:10
20:30:20
21:00:30
$ awk -v FPAT='[^,]*|"[^"]+"' -v OFS=',' '
    { $8=sprintf("%02d%s",($8+1)%24,gensub(/[^:]+/,"",1,$8)); print }
' file
OID   ,"DATA","PARENT ","APP       ","DSN     ","JOB            ",RUN_,01,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 ,19: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 ,20: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 ,20: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 ,21: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,