中かっこに基づいて行を複数の部分に分割しますか?

中かっこに基づいて行を複数の部分に分割しますか?

次の形式の1行ファイルがあります。

{port1 dev1 M1 s} {port1 dev1 M1 s} {port3 dev2 M1 g} {port1 dev1 M1 d} {port1 dev1 M3 g} ...

以下に示すように、この行とcatを中括弧{}に基づく出力ファイルに分割したいと思います。どうすればいいですか?

port1 dev1 M1 s
port1 dev1 M1 s 
port3 dev2 M1 g 
port1 dev1 M1 d 
port1 dev1 M3 g

ベストアンサー1

パールの使用:

perl -lne 'print for /{(.*?)}/g' file
port1 dev1 M1 s
port1 dev1 M1 s
port3 dev2 M1 g
port1 dev1 M1 d
port1 dev1 M3 g

またはsedを使用してください:

sed 's/{\([^}]*\)} */\1\n/; P;D' file
port1 dev1 M1 s
port1 dev1 M1 s
port3 dev2 M1 g
port1 dev1 M1 d
port1 dev1 M3 g
...

おすすめ記事