2014-10-23 2 views
0

입력 텍스트 문서를 기반으로 HTML 링크를 만드는 방법 : 예를좋아, 그래서 기본적으로 내가 입력의 TXT있어

fde 
fefe 
4fd 
f3faf 
내가 텍스트 문서의 모든 입력을 싶습니다

및 HTML 링크를 출력하는 bash 스크립트를 가지고있다.

<a href='https://wwww.example.com/fde/'>https://wwww.example.com/fde/</a> 
<a href='https://wwww.example.com/fefe/'>https://wwww.example.com/fefe/</a> 

각 줄 파일의 경우 각 줄마다 하이퍼 링크가있는 html이 있어야합니다. 도와 주시면 감사드립니다. 나는 bash/linux 터미널에서이 작업을 시도하고있다.

cat test.txt | while read string; do echo "<a href='https://wwww.example.com/$string'>https://wwww.example.com/$string</a>"; done 

이 출력은 다음과 같습니다 :

<a href='https://wwww.example.com/fde'>https://wwww.example.com/fde</a> 
<a href='https://wwww.example.com/fefe'>https://wwww.example.com/fefe</a> 
<a href='https://wwww.example.com/4fd'>https://wwww.example.com/4fd</a> 
<a href='https://wwww.example.com/f3faf'>https://wwww.example.com/f3faf</a> 

당신은뿐만 아니라 파일을 예상하는 bash는 스크립트를 만들 수있는 파일을 가정

답변

0

는 당신이 그것을 다음과 같은 방법을 해결할 수 test.txt 이름 전달할 위치 :

#!/bin/bash 

[[ -z $1 || ! -f $1 ]] && echo "File not found." && exit 1 

cat $1 | \ 
    while read string; do 
     echo "<a href='https://wwww.example.com/$string'>https://wwww.example.com/$string</a>" 
    done 

이 해결책은 esc 예를 들어 <, >, &, " 또는 '과 같은 HTML 항목이 문자열에 포함되어있는 경우 이스케이프해야 할 수 있습니다.

+0

좋아요 그래서 이것은 매우 유용합니다. bash에 관해 뭔가 생각났다면 올바른 해결책을 찾을 수 있었을 것입니다. 대신 자선 사업에 대해 직접 물어봐야합니다. 죄송합니다. 입력을 시도하지 않으 셨습니다 ... 어떻게 할 수 있는지 물어 보려했습니다. bash 스크립트로 텍스트 파일을 실행할 수 있고 b) 출력을 htm 파일로 만들 수 있습니다. 감사. –

+0

스크립트 예제를 추가했습니다. 다른 파일로 리디렉션하려면 [I/O 리디렉션] (http://www.tldp.org/LDP/abs/html/io-redirection.html)을 사용하십시오. 기본적으로'./script.sh> targetfile.html'. (또는'>'을 사용하여 기존 파일에 추가하십시오.) – lxg

+0

Eh. 사실 나는 방금 cat> file.htm을 끝에 추가했는데 감사하게도 작동합니다. 모든 것이 아니지만 적어도 작동합니다. 매우 도움이되어 대단히 기쁩니다. 고맙습니다. 이 일은 쓸데없는 일이 아니라면 일종의 갈마를 줄 것입니다. 빠른 응답을 보지 못했습니다. 많은 감사 –

0

이 시도 :이 코드는 script.sh라는 스크립트 파일에있는 가정

while read line 
do 
    echo "<a href='https://wwww.example.com/"$line"/'>https://wwww.example.com/"$line"/</a>" 
done < "your-file-name" 

의 터미널에서 다음을 실행합니다

chmod +x script.sh #to grant execute right 
./script.sh #to launch the script 
+0

감사합니다. 이것은 또 다른 훌륭한 대답입니다. –

관련 문제