私は次のコードレイアウトを持っています:
#ifndef _file_h_
#define _file_h_
namespace FooBar
{
// code
}
#endif
これを sed で実行し、FooBar 名前空間を Foo::Bar に変換し、右中括弧を追加したい
#ifndef _file_h_
#define _file_h_
namespace Foo { namespace Bar {
// code
}}
#endif
私の正規表現の知識は、最良の場合でも非常に貧弱であることを認めます。
以下のコマンドは、探しているものを達成するのに近いと思いますが、構文の一部が間違っています。誰か助けてくれませんか?
cat file.h | sed -e 's/(.*)namespace FooBar[\s\n]{(.*)}/\1namesapce Foo \{ namespace Bar \{\2\}\}/g' | less