中かっこの間に可変数の行を連結する必要があります。入れ子にされ、特定のプレフィックスパターンで始まる中括弧だけを連結します。
header {
category1 (a) {
field1 : value1 ;
field2 : value2 ;
...
fieldn : valuen ;
}
new cat1 (b) {
newfield1 : newvalue1 ;
newfield2 : newvalue2 ;
....
newfieldn : newvaluen ;
}
...
}
カテゴリとフィールド名は可変であり、末尾の ";"前にスペースがある場合もありません。行の前、または単語/区切り記号の間にスペースまたはタブを含めることができます。
出力は次のようになります。
header {
category1 (a) { field1 : value1 ; field2 : value2 ; ... fieldn : valuen ; }
new cat1 (b) { newfield1 : newvalue1 ; newfield2 : newvalue2 ; .... newfieldn : newvaluen ; }
}
私はCentOSを使用しているので、sed / awk / perlを使用できます。
ありがとうございます!
ベストアンサー1
努力する
$ awk '
/^ *$/ {next
}
/cat.*{/ {while (! /}/) {getline X
$0 = $0 X
}
}
1
' file
header {
category1 (a) {field1 : value1 ;field2 : value2 ;...fieldn : valuen ;}
new cat1 (b) {newfield1 : newvalue1 ;newfield2 : newvalue2 ;....newfieldn : newvaluen ;}
...
}