C 파일의 포함 경로를 sed로 바꾸는 방법은 무엇입니까?

C 파일의 포함 경로를 sed로 바꾸는 방법은 무엇입니까?

내가 가지고 있다고 말해

#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더 확장된 경우를 위해 옵션이 추가되었습니다. 현재의 간단한 것은 그것 없이도 작동할 것입니다.

관련 정보