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