
Angenommen, ich habe
#include <prog1/foo.h>
#include <prog1/bar.h>
#include <prog1/baz.h>
Ich muss es ersetzen durch
#include <prog1/prog1/foo.h>
#include <prog1/prog1/bar.h>
#include <prog1/prog1/baz.h>
Ich weiß nur, wie ich die ursprüngliche Entsprechung finde, etwa:
sed -i -e '/#include\s<prog1\/.*\.h>/' testfile
Habe aber keine Ahnung, wie ich etwas in die Mitte einer Schnur setzen soll
Antwort1
sed
Ansatz:
sed -E '/^#include/ s/<prog1/&\/prog1/' testfile
Die Ausgabe:
#include <prog1/prog1/foo.h>
#include <prog1/prog1/bar.h>
#include <prog1/prog1/baz.h>
-E
Für komplexere Fälle wurde eine Option hinzugefügt. Die aktuelle einfache Version funktioniert auch ohne sie.