我意识到这很简单,但我不会写很多脚本,所以冒着愚蠢的骄傲,我希望通过提出这样一个基本问题来学习一两件事。
鉴于UNIX(Mac),您如何处理文件名的转换列表(.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...
我知道Ruby ......但我会为这么简单的任务重视其他语言示例。我不确定如何将txt文件的每一行(或目录中的文件名)参数化为输入进行处理。输出很简单。
答案 0 :(得分:1)
puts Dir['*.JPG'].map{ |f| "<img src='#{f}' title='Image File #{f}' />" }
修改:抱歉,我误读了。那么你有一个包含一堆文件名的文件?
IO.read('myfile.txt').scan(/\S+/).map{ |f| "...#{f}..." }
答案 1 :(得分:1)
perl -lnwe 'print "<img src=\"http://host/$_\">"' filelist.txt
答案 2 :(得分:1)
在Bash中:
使用目录列表:
for a in `ls *.JPG`; do echo "<img src=\"http://imgs.domain.com/event/$a\" title=\"Image File $a\" />"; done
从文件(名为 list 的文件):
cat list | while read a; do echo "<img src=\"http://imgs.domain.com/event/$a\" title=\"Image File $a\" />"; done
答案 3 :(得分:1)
这不是最有效的解决方案,但易于理解: 创建一个文件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确保您不会处理给定文件中的空行。
答案 4 :(得分: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