階層構造の文字列を抽出する方法について
以下のようなテキストファイルを、シェルスクリプトにてCSVファイル形式に加工したいと考えています。
Linux上で加工出来れば、手法については拘りはありません。
実現方法が思いつかない為、アドバイス等を頂けると助かります。
・テキストファイル
ltm virtual /Common/vip-A {
destination /Common/192.168.1.1:80
ip-protocol tcp
mask 255.255.255.255
pool /Common/pool-A
profiles {
/Common/fastl4_default { }
}
source 0.0.0.0/0
translate-address enabled
translate-port enabled
}
ltm virtual /Common/vip-B {
destination /Common/192.168.1.2:80
ip-protocol tcp
mask 255.255.255.255
pool /Common/pool-B
profiles {
/Common/clientssl-www.hoge.jp {
context clientside
}
/Common/tcp { }
}
source 0.0.0.0/0
translate-address enabled
translate-port enabled
}
ltm pool /Common/pool-A {
members {
/Common/192.168.2.1:80 {
address 192.168.2.1
}
}
monitor /Common/tcp
}
ltm pool /Common/pool-B {
members {
/Common/192.168.2.2:80 {
address 192.168.2.2
}
}
monitor /Common/tcp
}
・CSV出力例
vip-A,192.168.1.1:80,tcp,255.255.255.255,pool-A,fastl4_default,0.0.0.0/0,enabled,enabled vip-B,192.168.1.2:80,tcp,255.255.255.255,pool-B,www.hoge.jp,0.0.0.0/0,enabled,enabled pool-A,192.168.1.1:80,192.168.2.1,tcp pool-B,192.168.1.2:80,192.168.2.2,tcp
補足になります。
・実機の設定ファイルを、一覧表で管理するのが目的で進めています。
・階層構造の形式で、括弧でくくられた1つの塊を1行にしたいのですが、
awkコマンドで抽出することを思いついたのですが、改行の条件をどうしたら良いのかで悩んでいます。