
說我有
#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
為更多擴展案例添加了選項。即使沒有它,當前的簡單方法也能工作。