如何用 sed 取代 C 檔案中的包含路徑?

如何用 sed 取代 C 檔案中的包含路徑?

說我有

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

相關內容