使用sed修改twb格式XML内容出现报错该如何解决
报错原因
sed的s替换命令默认使用/作为分隔符,你需要替换的URL中包含大量/字符,导致sed提前判定替换表达式结束,后续的/被识别为无效选项,因此抛出该错误。
解决方法
替换s命令的分隔符为不会出现在目标内容中的字符(比如#、|均可),同时补充sed的原位修改参数,最终可用脚本如下:
# 先切换到twb文件存放的folder1目录 cd /path/to/folder1 # 遍历所有twb文件批量修改 for file in *.twb do # 用#作为分隔符避免和URL中的/冲突,-i参数直接修改原文件 sed -i 's#dev.helloworld.html#uat.helloworld.html#g;s#https://tableau/ExportDEV.html#https://tableau/ExportUAT.html#g' "$file" done
可选优化
如果担心修改出错需要备份原文件,可以将-i改为-i.bak,执行后会为每个twb文件生成同名的.twb.bak备份文件,确认修改无误后可执行rm *.twb.bak批量删除备份。
内容的提问来源于stack exchange,提问作者Farid Arshad
相关产品推荐
相关产品推荐

