Замените одно слово во множестве страниц HTML другим словом из списка слов - PullRequest
0 голосов
/ 09 ноября 2018

У меня около 2000 HTML-страниц (все страницы имеют одинаковое содержимое, кроме названия города). У меня есть список названий городов, и мне нужно, чтобы на каждой странице было по 1 названию города. Как я могу изменить название города на каждой странице?

список названий городов: birmingham Montgomery мобильный Хантсвилле Таскалуза пылесос .. и т.д ...

и мне нужно сделать каждую страницу такой: Название: Бирмингем, следущая страница; название: Монтгомери, и т. д.

Мне нужно, чтобы изменение произошло в заголовке: Пример (название города)
и в 2 других тегах h2.

Большое спасибо за внимание!

1 Ответ

0 голосов
/ 09 ноября 2018

Обновление: Этот скрипт для существующих файлов. Он будет иерархически находить все файлы 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

Что нужно иметь:

  1. towns.txt со списком названий городов, например,
    Лондон
    Ереван
    Berlin

  2. template.html с html-шаблоном, который необходимо иметь в каждом файле. Убедитесь, что в названии города указано «string_to_replace», например, title: string_to_replace

Поскольку вы не упомянули что-либо, относящееся к именам файлов, файлы будут называться как London.html, Yerevan.html, ...

Дайте мне знать, если вам не нужно создавать новые файлы, и вам нужно заменить существующие. В этом случае нам потребуется немного обновить скрипт после того, как вы сообщите мне, откуда вы знаете, какая строка будет использоваться в конкретном файле.

...