텍스트 파일에 여러 개의 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
정규식의 일부를 그룹화하려면 \(\)
확장 정규식 구문을 사용하는 옵션을 사용하거나 제공하십시오.-E
sed
귀하의 경우에는 전혀 필요하지 않습니다. 전체 일치 항목에 대해서는 &
교체에 사용할 수 있습니다.
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'