sed는 텍스트 URL을 HTML URL로 바꿉니다.

sed는 텍스트 URL을 HTML URL로 바꿉니다.

텍스트 파일에 여러 개의 URL이 있습니다. Firefox는 이러한 URL을 직접 로드할 수 없는 것 같기 때문에 해당 URL을 HTML로 변환해야 합니다.

사용해도 sed작동하지 않습니다.

sed -e 's/^(.*)$/<a href="\1">\1<\/a><br>/g' myfile.txt

반환된 오류 메시지(번역됨, 영어 시스템에서는 이와 정확히 일치하지 않을 수 있음):

sed: -e expression n°1, char 33: invalid reference \1 in right side of the command `s'

난 그냥 이유를 알고 싶어요?

URL은 다음과 같습니다.

https://unix.stackexchange.com/questions/378496/sed-to-replace-text-url-to-html-url

일부에는 다음 문자가 포함될 수 있습니다: % & / \ _ - = :

줄 끝, 실제 개행 앞에 "개행"이 있어서 .* 문에 포함된 것 같습니다. Windows 환경에서 파일이 생성되었기 때문일 것입니다.

답변1

정규식의 일부를 그룹화하려면 \(\)확장 정규식 구문을 사용하는 옵션을 사용하거나 제공하십시오.-Esed

귀하의 경우에는 전혀 필요하지 않습니다. 전체 일치 항목에 대해서는 &교체에 사용할 수 있습니다.

sed 's/.*/<a href="&"><\/a><br>/' myfile.txt

탐욕 ^으로 인해 일치 항목이 전체 행을 포함하게 되므로 합계를 제거할 수도 있습니다 .$*

답변2

/sed 표현식에서 캡처 텍스트를 구분 기호로 사용하고 있으므로 /실패합니다.

's@^(.*)$@<a href="\1">\1<\/a><br>@g'변환할 mailto 링크가 없다고 가정하고 시도해 보세요 ;-)

당신은 또한 사용할 수 있습니다's!^(.*)$!<a href="\1">\1<\/a><br>!g'

관련 정보