次のファイルがあります。
//
ABC
String1
String2
BDF:
ssss
//
AFG
String4
String9
BDF:
fff
//
出力が欲しいです。
ABC, String1, String2, BDF: ssss
AFG, String4, String9, BDF: fff
二重スラッシュ間の行だけを把握し、別々のブロックを1行にリンクするにはどうすればよいですか?スラッシュ間の行はファイル全体で異なります。
ベストアンサー1
awk
RSを複数の文字に設定し、二重スラッシュに設定できるGNUを試してください//
。次に、設定で区切られたOFS=', '
カンマ区切りのフィールドを印刷し、設定gsub()
の目的は$1=$1
awkを実行することです。 OFS設定に基づいてフィールドを再設定しますprint
。
awk -v RS='//' 'NF{ $1=$1; gsub(":,", ":"); print }' OFS=', ' infile