SED - 임의의 PDF 파일 이름에 URL 접두사 추가

SED - 임의의 PDF 파일 이름에 URL 접두사 추가

웹에 업로드하기 전에 로컬로 미리 볼 수 있는 html 파일이 있습니다. 로컬 PDF 파일에 대한 링크가 있습니다. 업로드하려면 PDF 앞에 URL을 추가해야 합니다.

다음은 내 로컬 HTML 파일의 예입니다.

<a href="randomFilename.pdf">Article HERE</a>

내 웹 버전을 수정해야 하는 방법은 다음과 같습니다.

<a href="https://www.site.com/folder1/folder2/randomFilename.pdf">Article HERE</a>

따라서 https://www.site.com/folder1/folder2/완전히 임의의 PDF 파일 이름에 추가해야 합니다. SED가 이것을 할 수 있는지 모르겠습니다. "pdf"를 검색할 수 있지만 이 접두사를 거꾸로 추가하려면 어떻게 해야 할까요? 50개의 sed 명령 페이지를 검색했지만 이에 대한 단서를 찾을 수 없습니다.

답변1

가장 간단한 방법은 캡처 그룹에서 파일 이름을 캡처하는 것입니다. -E플래그를 설정한 후 일반 대괄호를 사용할 수 있습니다. (또는 플래그 없이 \(and 를 사용할 수도 있습니다 .) 그런 다음 \)교체에서 -E이를 참조 할 수 있습니다.\1

sed -E 's#<a href="([^"]*)\.pdf"#<a href="https://www.site.com/folder1/folder2/\1.pdf"#g' filename.html

이는 로 시작하는 패턴을 찾고 <a href="그 뒤에 큰따옴표(캡처링 그룹에서 캡처됨) 이외의 시퀀스가 ​​오고 캡처 그룹 앞의 동일한 내용으로 대체됩니다 .pdf".https://www.site.com/folder1/folder2/

URL을 열고 닫을 때 항상 큰따옴표를 사용하고 프로토콜, 도메인 등이 이미 포함된 PDF 링크가 없다고 가정합니다.

관련 정보