ラインヘッダを削除しながら、プログラム出力のラインごとのチャンクをCSVに変換します。

ラインヘッダを削除しながら、プログラム出力のラインごとのチャンクをCSVに変換します。

助けが必要です。私のコマンドの出力は次のとおりです。

Server1:  
CPU(S):  8  
RAM: 24  
Socket: 2  

Server2:  
CPU(S):  16   
RAM: 32   
Socket: 5 

希望の出力:

Server1:,8,24,2  
Server2:,16,32,5    

ベストアンサー1

awk '
  NF==1 { printf "%s%s", NR==1 ? "" : ORS, $1 }
  NF==2 { printf ",%s", $2 }
  END   { printf "%s", ORS }
' file
  • 行にフィールドが含まれている場合:
    • これが最初の行でない場合は、改行文字を印刷します。
    • フィールド1印刷
  • 行に2つのフィールドが含まれている場合は、カンマとfield2を印刷してください。
  • 最後に改行文字を印刷します。

おすすめ記事