Обработка списка файлов для форматирования имен файлов для сети (легко) - PullRequest
1 голос
/ 03 мая 2011

Я понимаю, что это очень просто, но я не пишу много сценариев, так рискуя глупой гордостью, я надеюсь выучить одну или две вещи, задав такой простой вопрос.

Учитывая 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...

Я знаюРубин ... но я бы оценил дополнительные языковые примеры для такой простой задачи.В чем я не уверен, так это в том, как параметризовать каждую строку txt-файла (или имя файла в каталоге) во входных данных для обработки.Вывод достаточно прост.

Ответы [ 5 ]

1 голос
/ 03 мая 2011

для сценариев 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
1 голос
/ 03 мая 2011

Это будет не самое эффективное решение, но простое для понимания: создайте файл 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 голос
/ 03 мая 2011
perl -lnwe 'print "<img src=\"http://host/$_\">"' filelist.txt
1 голос
/ 03 мая 2011

В Баш:

Использование списка каталогов:

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
1 голос
/ 03 мая 2011
puts Dir['*.JPG'].map{ |f| "<img src='#{f}' title='Image File #{f}' />" }

Редактировать : Извините, я неправильно прочитал.Итак, у вас есть файл с кучей имен файлов?

IO.read('myfile.txt').scan(/\S+/).map{ |f| "...#{f}..." }
...