Cファイルのインクルードパスをsedに置き換える方法は?

Cファイルのインクルードパスをsedに置き換える方法は?

私が持っていると言う

#include <prog1/foo.h>
#include <prog1/bar.h>
#include <prog1/baz.h>

に交換する必要があります

#include <prog1/prog1/foo.h>
#include <prog1/prog1/bar.h>
#include <prog1/prog1/baz.h>

私は元の一致を見つける方法を知っています:

sed -i -e '/#include\s<prog1\/.*\.h>/' testfile

しかし、文字列の途中に何かを入れる方法がわかりません。

ベストアンサー1

sed方法:

sed -E '/^#include/ s/<prog1/&\/prog1/' testfile

出力:

#include <prog1/prog1/foo.h>
#include <prog1/prog1/bar.h>
#include <prog1/prog1/baz.h>

  • -Eより拡張されたケースのオプションが追加されました。それがなくても、現在の簡単なアプローチは機能します。

おすすめ記事