正则表达式可将文件名添加到html文档

时间:2018-06-21 21:40:54

标签: html regex bash notepad++

我正在寻找一种编辑成千上万个.html文件的方法,将它们添加到og:url中,其URL基本上取自文件名。基本上,对于每个我想要的.html:

<meta property="og:url" content="https://www.example.com/NAME-OF-THE-FILE.html" />

-

我的想法是搜索 并将其替换为所需的代码: 我不知道如何找到文件名。该怎么办?

-

简单地说:

我搜索并替换所有 .html 文件。

位置:

</head>

替换为:

<meta property="og:url" content="https://www.example.com/{FILENAME}" />
</head>

我该怎么做?我不知道如何获取 {FILENAME} (文件名)

编辑:重击似乎很有趣,但是我对此并不满意,也不知道如何获得它。任何帮助都非常欢迎。

谢谢,谢谢。

2 个答案:

答案 0 :(得分:1)

能否请您在单个.html文件上尝试执行以下命令,并告诉我这是否对您有帮助,如果您看到单个文件正在运行,则可以将其用于所有html文件。这是在Powershell中,并且大部分是Windows内置的。(请先仅在1个文件上尝试它们,因为我还没有测试它们)

(Get-Content test.html) | ForEach-Object { $_ -replace "</head>", "<meta property="og:url" content="https://www.example.com/{FILENAME}" />\n</head>" } | Out-File test.html

OR

powershell -Command "(gc test.html) -replace '</head>', '<meta property="og:url" content="https://www.example.com/{FILENAME}" />\n></head>' | Out-File test.html"

答案 1 :(得分:1)

如果您可以使用bash进行访问,则可以运行以下小脚本:

for i in *.html;do
  sed -i "s/</head>/<metaproperty=\"og:url\"content=\"https://www.example.com/$i\"/</head>/g" "$i"
done

编辑:缺少一些反斜杠。正确的sed命令是:

sed -i "s/<\/head>/<meta property=\"og:url\" content=\"https:\/\/www.example.com\/$i\" \/><\/head>/g" "$i"