Command line 用单词列表中的另一个单词更改许多HTML页面中的一个单词

Command line 用单词列表中的另一个单词更改许多HTML页面中的一个单词,command-line,command-prompt,batch-processing,Command Line,Command Prompt,Batch Processing,我有大约2000个HTML页面(除了城市名称之外,所有页面都有相同的内容)。我有城市名称列表,我需要每一页有一个城市名称。 如何更改每页中的城市名称 城市名单:伯明翰 蒙哥马利 可移动的 亨茨维尔 塔斯卡卢萨 胡佛。。等等 我需要让每一页都像这样: 标题:伯明翰, 下一页; 标题:蒙哥马利, 等等 我需要更改标题:示例(城市名称) 在另外两个h2标签中 非常感谢您的关注 更新: 此脚本用于现有文件。它将按层次结构查找当前目录中的所有index.html文件,并将“string_to_replac

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

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

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

我需要更改标题:示例(城市名称)
在另外两个h2标签中

非常感谢您的关注

更新: 此脚本用于现有文件。它将按层次结构查找当前目录中的所有
index.html
文件,并将“string_to_replace”字符串替换为该文件的父目录名称,即您所在的城市名称。它还将使该名称在替换之前大写。 请随时更新脚本中的tamplate_字符串变量值,使其适合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
你需要的是:

  • cities.txt和城市名称列表,例如。
    伦敦
    埃里温
    柏林

  • template.html,以及每个文件中需要的html模板。确保城市名称在其中设置为“string_to_replace”,例如title:string_to_replace

  • 由于您没有提到任何与文件名相关的内容,因此文件的名称将类似于London.html、Yerevan.html、


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

    您需要提供有关如何完成此任务的更多信息:脱机、通过批处理HTML文件,或在线-运行时、在浏览器中?另外,您是否考虑过使用模板语言根据城市列表动态生成HTML内容?脱机。。。我想知道是否有任何方法可以自动化这个过程,目前我只是打开每个页面,按CTRL+H键,然后替换每个城市的名称。错误的标签。。已更正以匹配查询..感谢您的回答。所有文件都已创建(文件名为index.html)。您如何决定将城市名称用于确切的index.html?它是否取决于目录名?如果您提供一些详细信息,我可以提供帮助。您是否只需从列表中获取下一个城市名称并随机放入index.html文件中?这就是我需要做的:对于每个美国州,我必须创建一个文件夹,在每个州文件夹中,我需要每个城市的子文件夹,在子文件夹中,我需要放置一个index.html(对于所有城市,内容与城市名称相同除外)我可以假定子文件夹的名称是城市名称吗?这将有助于自动获取它并在相应的index.html中使用
     #!/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"
    
    $ source script.sh