Обновление:
Этот скрипт для существующих файлов. Он будет иерархически находить все файлы index.html
в текущем каталоге и заменит строку "string_to_replace" на имя родительского каталога этого файла, которое является названием города в вашем случае. Это также сделает это имя заглавным перед заменой.
Не стесняйтесь обновить значение переменной tamplate_string в сценарии, чтобы оно соответствовало строке, которая используется в ваших файлах index.html вместо названия города.
#!/bin/bash
template_string="string_to_replace"
current_dir=`pwd`
find $current_dir -name 'index.html' | while read file; do
dir=`basename $(dirname "$file")`
city="$(tr '[:lower:]' '[:upper:]' <<< ${dir:0:1})${dir:1}"
sed -i -e 's/'$template_string'/'$city'/g' $file
done
Первоначальный ответ:
Мое первоначальное предложение - использовать скрипт bash (например, script.sh), подобный следующему:
#!/bin/bash
file="./cities.txt"
template="./template.html"
template_string="string_to_replace"
while IFS= read line
do
cp $template $line".html"
sed -i -e 's/'$template_string'/'$line'/g' $line".html"
echo "$line"
done <"$file"
и запустить его из терминала bash:
$ source script.sh
Что нужно иметь:
towns.txt со списком названий городов, например,
Лондон
Ереван
Berlin
template.html с html-шаблоном, который необходимо иметь в каждом файле. Убедитесь, что в названии города указано «string_to_replace», например, title: string_to_replace
Поскольку вы не упомянули что-либо, относящееся к именам файлов, файлы будут называться как London.html, Yerevan.html, ...
Дайте мне знать, если вам не нужно создавать новые файлы, и вам нужно заменить существующие. В этом случае нам потребуется немного обновить скрипт после того, как вы сообщите мне, откуда вы знаете, какая строка будет использоваться в конкретном файле.