【问题标题】:Change one word in lots of HTML pages with another word from a list of words用单词列表中的另一个单词更改许多 HTML 页面中的一个单词
【发布时间】:2018-11-09 10:31:35
【问题描述】:

我有大约 2000 个 HTML 页面(所有页面的内容都相同,城市名称除外)。我有城市名称列表,我需要每个页面都有 1 个城市名称。 如何更改每个页面中的城市名称?

城市名单:伯明翰 蒙哥马利 移动的 亨茨维尔 塔斯卡卢萨 胡佛……等等……

我需要使每个页面都像这样: 标题: 伯明翰, 下一页; 标题:蒙哥马利, 等等。

我需要更改标题:示例(城市名称)
以及另外 2 个 h2 标签。

非常感谢您的关注!

【问题讨论】:

  • 您需要提供更多关于您如何尝试完成此任务的信息:离线,通过批处理 HTML 文件,还是在线 - 在运行时,在浏览器中?另外,您是否考虑过使用模板语言根据该城市列表动态生成 HTML 内容?
  • offline...我想知道是否有任何方法可以自动化该过程,目前我只是打开每个页面并按CTRL + H并替换每个城市名称。
  • 错误标签..已更正以匹配查询..

标签: command-line command-prompt batch-processing


【解决方案1】:

更新: 此脚本适用于现有文件。它将分层查找当前目录中的所有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. cities.txt 带有城市名称列表,例如
    伦敦
    埃里温
    柏林

  2. template.html 与您需要在每个文件中具有的 html 模板。确保在其中将城市名称设置为“string_to_replace”,例如标题:string_to_replace

由于您没有提及与文件名相关的任何内容,因此文件将命名为 London.html、Yerevan.html、...

如果您不需要创建新文件并需要替换现有文件,请告诉我。在这种情况下,在您告诉我您如何知道将在确切文件中使用哪个字符串之后,我们需要稍微更新一下脚本。

【讨论】:

  • 感谢您的回答。所有文件都已创建(文件名为 index.html)。
  • 您如何决定将城市名称用于确切的 index.html?它取决于目录名称吗?如果您提供一些详细信息,我可以提供帮助。
  • 您是否只是从列表中获取下一个城市名称并随机放入其中一个 index.html 文件?
  • 这是我需要做的:对于每个美国州我必须创建一个文件夹,在每个州文件夹中我需要每个城市的子文件夹,并且在子文件夹中我需要放置一个 index.html (对于所有城市,除城市名称外,内容相同)
  • 我可以假设子文件夹的名称是城市名称吗?这将有助于自动获取并在相应的 index.html 中使用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多