2017-04-11 12 views
1

タイムスタンプで凝縮する必要があるデータセットがあります。データを考える:タイムスタンプで始まるデータを1行に集約する方法

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 
+0

データを1行にしたいが、3行を表示するとしますか?あなたはそれをタイムスタンプで*したいと言っていますが、同じタイムスタンプを持つ2つの行がありますか?あなたが何を意味するのかを知ることは難しいです。 –

答えて

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 

正確な間隔を出力する必要がある場合は、少し複雑になります。あなたはそれがどのように動作するかについて何か質問がある場合は私に教えてください。

関連する問題