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더 확장된 사례에 대한 옵션이 추가되었습니다. 그것 없이도 현재의 간단한 접근 방식은 작동합니다.

관련 정보