2011-05-02 52 views
1

我意識到這是死簡單,但我不寫很多腳本,所以冒着愚蠢的驕傲我希望通過問這樣一個基本的問題來學習一兩件事。處理網絡文件名格式的文件(簡單)

由於UNIX(蘋果機)怎麼可能,你的做法轉向的文件名列表文件(.txt):

P4243419.JPG 
P4243420.JPG 
P4243423.JPG 
...continues... 

成html的是這樣的:

<img src="http://imgs.domain.com/event/P4243419.JPG" title="Image File P4243419.JPG" /> 
<img src="http://imgs.domain.com/event/P4243420.JPG" title="Image File P4243420.JPG" /> 
<img src="http://imgs.domain.com/event/P4243423.JPG" title="Image File P4243423.JPG" /> 
...continues... 

我知道紅寶石......但我將重視這樣一個簡單任務的附加語言示例。我不確定的是如何將txt文件的每一行(或目錄中的文件名)參數化到輸入中進行處理。輸出很簡單。

+0

我不明白 - 你想要一個bash腳本,Ruby腳本,或者不同的語言? – Phrogz 2011-05-02 21:00:00

+0

這是一個完全獨立的腳本,所以可以使用任何方法...好奇地看看我可能不熟悉的語言是如何處理同一個問題的。 – Meltemi 2011-05-03 16:46:00

回答

1
puts Dir['*.JPG'].map{ |f| "<img src='#{f}' title='Image File #{f}' />" } 

編輯:對不起,我看錯。所以你有一個文件,裏面有一堆文件名?

IO.read('myfile.txt').scan(/\S+/).map{ |f| "...#{f}..." } 
1
perl -lnwe 'print "<img src=\"http://host/$_\">"' filelist.txt 
1

在bash:

使用目錄列表:

for a in `ls *.JPG`; do echo "<img src=\"http://imgs.domain.com/event/$a\" title=\"Image File $a\" />"; done 

從文件(文件名爲列表):

cat list | while read a; do echo "<img src=\"http://imgs.domain.com/event/$a\" title=\"Image File $a\" />"; done 
1

這將是不是t他最有效的解決方案,但很容易理解: 製作一個文件img2link.sh

for file 
do 
    cat "$file" | grep -i jpg | while read image 
    do 
     echo "<img src=\"http://imgs.domain.com/event/$image\" title=\"Image File $image\" />" 
    done 
done 

您可以使用新的命令:

sh img2link.sh filename_with_images.txt another_filename_with_images.txt 

grep的保證比你不會處理在空行給定的文件。

1

對於bash腳本,我看到cat一對夫婦的答案 - 不需要

format_string="<img src='http://imgs.domain.com/event/%s' title='Image File %s' />\n" 
while read f; do 
    printf "$format_string" "$f" "$f" 
done < filename.txt