![sed 或 awk 脚本来纠正链接格式](https://linux22.com/image/173406/sed%20%E6%88%96%20awk%20%E8%84%9A%E6%9C%AC%E6%9D%A5%E7%BA%A0%E6%AD%A3%E9%93%BE%E6%8E%A5%E6%A0%BC%E5%BC%8F.png)
在我们的网络文档中,当人们在 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