как заменить путь включения в файле 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опция добавлена ​​для более расширенных случаев. Текущая простая будет работать и без нее.

Связанный контент