
持っていると言う
#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
より拡張されたケースのためにオプションが追加されました。現在のシンプルなオプションは、それがなくても機能します。