awkを使用してレコードベース(複数行)テキストをcsvに変換する

awkを使用してレコードベース(複数行)テキストをcsvに変換する

私の入力ファイルは次のとおりです。

Session: 324098324
Object: dd02:/24
Time: Sat 28 Oct 2017 12:40:41 AM CEST
Status: Error
ID: 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991

Session: 324321
Object: ad02:/24
Time: Sun 13 May 2018 12:00:43 PM CEST
Status: Ok
ID: 5F2B0121-4F2B-481D-B79F-2DC827B85093/21857092

Session: 132452
Object: xd01:/24
Time: Sun 08 Jul 2018 12:16:56 PM CEST
Status: Error
ID: 5F2B0121-4F2B-481D-B79F-2DC827B85093/21695878

出力は次のようになります。[エラー]

Session: 324098324, Object: ad02:/24, Time: Sat 28 Oct 2017 12:40:41 AM CEST, Status: Error, ID: 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991
Session: 324098324, Object: ad02:/24, Time: Sat 28 Oct 2017 12:40:41 AM CEST, Status: Error, ID: 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991
Session: 324098324, Object: ad02:/24, Time: Sat 28 Oct 2017 12:40:41 AM CEST, Status: Error, ID: 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991

編集:出力形式に大きな間違いがありました。上記の形式はCSVでは機能しません。次の形式が必要です。

Session, Object, Time, Status, ID
324098324, ad02:/24, Sat 28 Oct 2017 12:40:41 AM CEST, Error, 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991
324098324, ad02:/24, Sat 28 Oct 2017 12:40:41 AM CEST, Error, 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991
324098324, ad02:/24, Sat 28 Oct 2017 12:40:41 AM CEST, Error, 5F2B0121-4F2B-481D-B79F-2DC827B85093/16123991

答え1

awk -v RS='' '{gsub("\n", ", "); print}' input

答え2

paste書くことができますか?努力する

paste -s -d"\t\t\t\t\t\n" file

答え3

grep -A4 "Session " myfile | paste -s -d ' \n'

grepsessionという単語を見つけて成功すると、4行を印刷します。

paste単一行に変換します。

出力区切り記号を簡単に設定できます。paste -s -d '||||\n' OR paste -s -d ',,,,\n'

関連情報