检查并添加缺失的时间戳到文件中的各个行

sta*_*any 4 sed awk text-processing

我有以下格式的文件:

ABCD 01206001022T01YA022T01YA022T07SO 09:20:38
ABCD 01206001022ACION 09:24:40
ABCD 04006001021S01UK 09:24:42
ABCD 7878696621321312 23213213213213
ABCD ASADSADSFSSDSSD 09:24:50
Run Code Online (Sandbox Code Playgroud)

基本上除了第一个字段,所有其他字段都不同。

要求:我希望每一行都有时间戳。如果任何一行缺少时间戳,我想将上一行的时间戳附加到缺失行的末尾(上面的示例第 4 行)。我怎样才能做到这一点?

jor*_*anm 5

awk应该这样做:

awk '{ 
         if ( $NF ~ /[0-9]+:[0-9]+:[0-9]+/ ) {
            lasttime = $NF
            print
         } else {
            print $0, lasttime
         }
     }' < myfile.txt
Run Code Online (Sandbox Code Playgroud)