폴더 및 모든 하위 폴더의 모든 파일에서 하위 문자열을 검색하고 다른 문자열로 바꿉니다.

폴더 및 모든 하위 폴더의 모든 파일에서 하위 문자열을 검색하고 다른 문자열로 바꿉니다.

몇 가지 질문이 있다는 것을 알고 있지만 제 질문은 구체적입니다.

하위 문자열:을 폴더와 해당 하위 폴더에 있는 모든 HTML 파일 localhost:8000/로 바꾸고 싶습니다 .https://www.begueradj.com/

이 경우 나 /에게 //문제가 발생했습니다 .

어떤 팁이 있나요?

편집하다:

더 열심히 노력하려는 나의 시도는 다음과 같습니다.여기.

하지만어느다른 효과적인 방법을 환영합니다.

답변1

여기에는 (적어도) 개선이 필요한 두 가지 사항이 있습니다.

  • 다른 명령으로 생성된 파일 이름 목록을 사용하면 파일 이름에 공백 문자가 포함되거나 더 나쁜 경우 for다소 흥미로운 방식으로 중단되는 경향이 있습니다.
  • 당신이 사용하는 인용문이 sed이상합니다.

노력하다

find . -name '*.html' -print0 | 
    xargs -0 sed -i 's|localhost:8000|https://www.begueradj.com/|'

옵션은 전달된 모든 이름이 NUL로 종료되는지 확인 -print0합니다 .findxargs

관련 정보