
decir que tengo
#include <prog1/foo.h>
#include <prog1/bar.h>
#include <prog1/baz.h>
tengo que reemplazarlo con
#include <prog1/prog1/foo.h>
#include <prog1/prog1/bar.h>
#include <prog1/prog1/baz.h>
Sólo sé cómo encontrar la coincidencia original, como:
sed -i -e '/#include\s<prog1\/.*\.h>/' testfile
Pero no tengo idea de cómo poner algo en medio de una cuerda.
Respuesta1
sed
acercarse:
sed -E '/^#include/ s/<prog1/&\/prog1/' testfile
La salida:
#include <prog1/prog1/foo.h>
#include <prog1/prog1/bar.h>
#include <prog1/prog1/baz.h>
-E
Se agrega la opción para casos más extendidos. El sencillo actual funcionará incluso sin él.