如何将数据压缩到以时间戳开头的单行

Posted

技术标签:

【中文标题】如何将数据压缩到以时间戳开头的单行【英文标题】: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

【问题讨论】:

你说你想要你的数据在一行,但你显示三行?你说你想要它“按时间戳”,但是你有两行具有相同的时间戳?很难理解你的意思。 【参考方案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 

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

【讨论】:

以上是关于如何将数据压缩到以时间戳开头的单行的主要内容,如果未能解决你的问题,请参考以下文章

如何保留原始文件压缩后的时间戳?

以微秒精度压缩 unix 时间戳

如何将类名添加到以特定 id 开头的所有元素?

如何从 zip 文件中读取数据而无需解压缩整个文件

我们如何知道 bzip2 块的未压缩数据的大小?

跟我学CMD实战系列之二 ——数据压缩备份