如何从时间戳

时间:2017-04-11 20:25:57

标签: regex bash awk

我有一组数据需要按时间戳压缩。鉴于数据:

06:59:27: Call
06:59:28: Call Info:  Voice
device[iPhone]
    rcv=[10.10.123]
    xmt=[10.10.123]
Media Server[Local]
    A rcv=[10.10.123]
    A xmt=[10.10.123]
06:59:28: Call Transfer

我需要将这些行向上移动,以便所有数据按时间戳显示在一行中:

06:59:27: Call
06:59:28: Call Info:  Voice device[iPhone] rcv=[10.10.123] xmt=[10.10.123] Media Server[Local] A rcv=[10.10.123] A xmt=[10.10.123]
06:59:28: Call Transfer

1 个答案:

答案 0 :(得分:0)

以下是我提出的建议:

awk '/^([0-9]{2}:){3}/{if(b)printf "\n";b=1} {printf $0 " "}' filename.txt

输出上的间距与您的间距不完全相同:

06:59:27: Call 
06:59:28: Call Info:  Voice device[iPhone]     rcv=[10.10.123]     xmt=[10.10.123] Media Server[Local]     A rcv=[10.10.123]     A xmt=[10.10.123] 
06:59:28: Call Transfer 

如果您需要输出具有精确的间距,则会稍微复杂一些。如果您对其运作方式有任何疑问,请与我们联系。