【问题标题】:How to condense data to single row starting with timestamp如何将数据压缩到以时间戳开头的单行
【发布时间】:2017-09-07 09:52:17
【问题描述】:

我有一组需要按时间戳压缩的数据。给定数据:

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

【问题讨论】:

  • 你说你想要你的数据在一行,但你显示三行?你说你想要它“按时间戳”,但是你有两行具有相同的时间戳?很难理解你的意思。

标签: regex bash awk


【解决方案1】:

这是我想出的:

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 

如果您需要输出具有精确的间距,它会稍微复杂一些。如果您对它的工作原理有任何疑问,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    相关资源
    最近更新 更多