如何用sed修改HA服务器RSS订阅的图片标签(移除随机数字)
解决方案:用sed批量转换RSS图片标签
你可以用sed的正则匹配功能处理动态变化的length属性值,下面是具体命令和说明:
核心sed命令
sed 's/<enclosure length="[^"]*" type="image\/jpeg" url="\([^"]*\)"\/>/<picture_a>\1<\/picture_a>/g' 你的RSS文件名.xml
如果需要直接修改原文件(务必先备份),可以使用带备份的原地修改参数:
sed -i.bak 's/<enclosure length="[^"]*" type="image\/jpeg" url="\([^"]*\)"\/>/<picture_a>\1<\/picture_a>/g' 你的RSS文件名.xml
执行后会生成原文件的备份(后缀为.bak),修改后的内容直接保存在原文件中。
命令细节拆解
s/匹配规则/替换内容/g:sed的替换语法,g表示全局替换(处理一行内所有符合规则的内容)<enclosure length="[^"]*":匹配标签开头的固定部分,[^"]*用来匹配length属性的任意值(非双引号的所有字符,完美适配随机数字)type="image\/jpeg" url=":匹配中间固定的属性内容,这里的\/是对斜杠的转义(因为sed默认用斜杠作为命令分隔符,避免冲突)\([^"]*\):把url属性里的图片地址捕获为一个分组,后续用\1引用这个捕获到的内容"\/>:匹配标签结尾的固定部分,同样转义了斜杠<picture_a>\1<\/picture_a>:替换后的标签结构,\1会自动替换成之前捕获到的图片地址
内容的提问来源于stack exchange,提问作者user28247893
相关产品推荐
相关产品推荐

