링크 형식을 수정하는 sed 또는 awk 스크립트

링크 형식을 수정하는 sed 또는 awk 스크립트

웹 문서에서는 사람들이 href 링크에서 "를 생략하면 오류가 자주 발생합니다.

예를 들어<a href="https://example-site.com/about.html/ target="_blank">

이 문제를 해결하기 위해 마크다운 파일에서 실행할 수 있는 스크립트를 작성했습니다.

sed -i -e 's/ target=\"_blank\"/\"&/' docs.md

이것은 위의 내용을 작동하고 수정합니다.<a href="https://example-site.com/about.html/" target="_blank">

그러나 a 가 누락되었는지 확인하지 않으므로 "링크가 올바르게 작성되면 다른 링크를 추가하므로 다음과 같습니다.

<a href="https://example-site.com/about.html/"" target="_blank">

또한 href 링크 뒤에는 항상 다음이 따른다고 가정합니다.target="_blank"

따라서 다른 방식으로 접근하여 a href=다음 블록이 항상 포함되어 있는지 확인하는 것이 " "더 나을 수도 있습니다 .

" "더 많은 처리가 필요한 상황의 예시 에 href 이후의 내용이 포함되어 있는지 확인하여 처리한다면 , 다음과 같은 경우에 처리가 필요합니다.

<a href="https://docs.appneta.com/api.html#getting-started-with-the-apm-api"
<a href="https://www.datadoghq.com/"
<a href="https://docs.datadoghq.com/api/v2/users/#list-all-users"
<a href="https://help.emarsys.com/hc/en-us/articles/115000697445-About-Account-Owners"
<a href="https://guide.firstrain.com/api-v2/2017/04/28/authentication/"

이를 달성하는 가장 좋은 방법은 무엇입니까?

답변1

그렇지 않은 경우에만 "를 추가합니다. 이는 sed의 if 문과 같습니다. 문제가 해결됩니까?

sed -iE '/" target=/b ;s/ target=/"&/' docs.md

관련 정보