如何将包裹URL的<tag:identifier>标签对替换为<tag:url>标签对
替换自定义URL标签的实现方法
所有支持分组正则匹配的工具都可以实现该需求,以下是3种最常用的操作方案:
方案1:用sed命令行工具(适用于类Unix系统/macOS)
直接执行单行命令即可完成批量替换,操作逻辑是通过正则分组捕获中间的URL内容,同步替换前后的标签:
# 替换后输出到新文件,不修改原文件 sed -E 's/<tag:identifier>(http.*)<\/tag:identifier>/<tag:url>\1<\/tag:url>/g' 原文件名 > 新文件名 # 如需直接修改原文件,会自动生成.bak后缀的备份防止误操作 sed -i.bak -E 's/<tag:identifier>(http.*)<\/tag:identifier>/<tag:url>\1<\/tag:url>/g' 原文件名
该命令只会匹配起始标签后接http的行,其他<tag:identifier>标签不会被修改。
方案2:用VS Code可视化编辑器(全平台通用)
适合不习惯命令行的用户,操作简单直观:
- 用VS Code打开目标文件,按快捷键
Ctrl+H(macOS为Cmd+Option+F)调出替换面板 - 点击替换面板右上角的「.*」按钮,开启正则匹配模式
- 查找内容输入:
<tag:identifier>(http.*)</tag:identifier> - 替换内容输入:
<tag:url>$1</tag:url> - 点击「全部替换」即可完成所有匹配行的批量修改
方案3:用awk命令行工具(适用于类Unix系统/macOS)
逻辑更简单,先匹配到包含URL的标识符标签行,再直接替换该行内所有tag:identifier字符串即可:
awk '/<tag:identifier>http/{gsub(/tag:identifier/,"tag:url")}1' 原文件名 > 新文件名
内容的提问来源于stack exchange,提问作者yuuuu
相关产品推荐
相关产品推荐

