여러 URL이 포함된 일반 텍스트 파일을 클릭 가능한 링크가 있는 html로 변환하는 방법은 무엇입니까? 명령줄에서 사용하는 것이 좋습니다.
가끔씩 나는 여러 개의 URL이 포함된 일반 텍스트 파일을 받습니다. 일반적으로 한 줄에 하나의 URL이 있습니다. 어쩌면 그 사이에 빈 줄이 있을 수도 있습니다. 때로는 텍스트가 있습니다. 때로는 텍스트와 URL이 한 줄에 배치되기도 합니다.
$ cat foo.txt
some links
https://stackoverflow.com/
https://superuser.com/
https://askubuntu.com/
best? https://unix.stackexchange.com/
파일은 사람이 생성한 것이므로 올바른 형식의 파일을 출력하도록 소스를 구성할 수는 없습니다.
URL이 몇 개만 있으면 수동으로 복사할 수 있습니다. 또는 cat
gnome 터미널에서(이렇게 하면 URL을 클릭할 수 있게 됩니다) 링크를 클릭하세요. 나도 그렇게 할 수 있어요 cat foo.txt | xargs firefox
.
그러나 텍스트와 혼합되거나 너무 많이 연결되면 이 모든 것이 더 이상 가능하지 않습니다.
정규식을 사용하여 URL 구문 분석을 시작하고 싶지 않습니다.sed는 텍스트 URL을 HTML URL로 바꿉니다.
답변1
판독구조하러 오세요
pandoc -f markdown+autolink_bare_uris+hard_line_breaks foo.txt > foo.html
autolink_bare_uris
마크다운 형식이 아니더라도 링크를 클릭 가능하게 만들기
hard_line_breaks
각 개행 문자를 개행 문자로 처리
예:
$ cat foo.txt
some links
https://stackoverflow.com/
https://superuser.com/
https://askubuntu.com/
best? https://unix.stackexchange.com/
$ pandoc -f markdown+autolink_bare_uris+hard_line_breaks foo.txt
<p>some links<br />
<a href="https://stackoverflow.com/" class="uri">https://stackoverflow.com/</a><br />
<a href="https://superuser.com/" class="uri">https://superuser.com/</a><br />
<a href="https://askubuntu.com/" class="uri">https://askubuntu.com/</a></p>
<p>best? <a href="https://unix.stackexchange.com/" class="uri">https://unix.stackexchange.com/</a></p>
pandoc의 대안:md4c
pandoc만큼 "무거운" 것은 아닙니다. 이는 qt5-base(archlinux에서)의 종속성이므로 시스템에 이미 설치되어 있을 수 있습니다.
$ md2html --fpermissive-url-autolinks foo.txt
<p>some links
<a href="https://stackoverflow.com/">https://stackoverflow.com/</a>
<a href="https://superuser.com/">https://superuser.com/</a>
<a href="https://askubuntu.com/">https://askubuntu.com/</a></p>
<p>best? <a href="https://unix.stackexchange.com/">https://unix.stackexchange.com/</a></p>
모든 개행 문자를 개행 문자로 처리하는 옵션은 없는 것 같습니다. 즉, URL 사이에 빈 줄이 없으면 단일 단락으로 묶입니다.
답변2
foo.txt
위의 예를 편집하면깃털 쿠션편집자, 클릭 가능한 링크로 표시됩니다.