階層構造の文字列を抽出する方法について
以下のようなテキストファイルを、シェルスクリプトにて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コマンドで抽出することを思いついたのですが、改行の条件をどうしたら良いのかで悩んでいます。