sed 或 awk 脚本来纠正链接格式

sed 或 awk 脚本来纠正链接格式

在我们的网络文档中,当人们在 href 链接中省略结尾的 " 时,经常会发生错误。

例如<a href="https://example-site.com/about.html/ target="_blank">

我编写了一个可以在 markdown 文件上运行的脚本来纠正这个问题:

sed -i -e 's/ target=\"_blank\"/\"&/' docs.md

这有效并将上述更正为<a href="https://example-site.com/about.html/" target="_blank">

但它不会检查是否缺少 a ",因此如果链接编写正确,它会添加另一个,因此它将变为:

<a href="https://example-site.com/about.html/"" target="_blank">

它还假设 href 链接后面总是跟着target="_blank"

因此,从另一种方式接近它并检查后面的块a href=是否始终包含在其中" "可能会更好。

如果通过检查 href 后面的内容是否包含在" "更多需要处理的情况示例中来处理它,则需要处理以下情况:

<a href="https://docs.appneta.com/api.html#getting-started-with-the-apm-api"
<a href="https://www.datadoghq.com/"
<a href="https://docs.datadoghq.com/api/v2/users/#list-all-users"
<a href="https://help.emarsys.com/hc/en-us/articles/115000697445-About-Account-Owners"
<a href="https://guide.firstrain.com/api-v2/2017/04/28/authentication/"

实现这一目标的最佳实践方法是什么?

答案1

仅当它没有时才会添加 ",它就像 sed 中的 if 语句。是否解决了问题?

sed -iE '/" target=/b ;s/ target=/"&/' docs.md

相关内容