1つのタイムスタンプに関連するすべての行がオンになるように、ログファイル内の行を「アンパース」する方法(2つの新しい行区切り文字 - '@'と '|')を理解するのに苦労しています。 1行パターンに基づいて行をマージする
Example:
2016-03-22 blah blah blah
|blah blah
|blah blah blah
@blah
|blah blah blah
2016-03-22 blah blah blah
|blah blah blah
@blah blah
@blah blah blah
|blah
必要な出力
2016-03-22 blah blah blah |blah blah |blah blah blah @blah |blah blah blah
2016-03-22 blah blah blah |blah blah blah @blah blah @blah blah blah |blah
は、私は、これはその後、2016年に新しい行を追加するためにsedを使って1行にすべてを置くためにxargを使用することにより、単にsussed思っていたが、私は文字上の限界がある発見しましたログファイルが非常に大きいので、xargsは複数の行を作成していました。
|で始まる行からキャリッジリターンを削除する@はこれを解決しますが、これをどうやって行うかを見分けることはできません。
私はここで検索し、同様の質問を投稿している人がいくつか見つかりましたが、sed/awk/xargsで十分に精通していないため、私の問題に適合するソリューションの一部を解釈できません。
誰かが何か提案をすることができれば幸いです。
おかげ
問題解決に数時間を費やしています。その後、質問を投稿します。 5分後に解決策が見つかります! 'catファイル| sed ':a; N; $!ba; s/\ n// g' | sed '/ 2016 -/\ n2016-/g'' – Gareth
答えとして説明するファイル。 –