【发布时间】:2021-09-04 17:39:51
【问题描述】:
我有一个 bash 脚本,它生成一个 xml 文件 (drivers_list.xml),随后必须删除这一行:
xmlns="http://feed.elasticstats.com/schema/nascar/series-v2.0.xsd"
通过查看此页面,我发现了一些建议并尝试了,
sed -i '' "s/xmlns=\"http://feed.elasticstats.com/schema/nascar/series-v2.0.xsd\"//g" drivers_list.xml
不幸的是,当我运行它时,我收到以下错误:
sed: 1: "s/xmlns="http://feed.el ...": bad flag in substitute command: 'f'
我该如何解决这个问题?
【问题讨论】:
-
搜索字符串或替换字符串中的模式拆分字符有问题。在您的情况下,您可以使用
#而不是/作为模式拆分字符,因此它不需要在搜索或替换字符串中转义/,例如sed "s#original_string_without_she#new_string_without_she#/g" drivers_list.xml。 -
@VictorLee,谢谢!感谢帮助
-
欢迎使用 SO,同样的事情,你可以使用单引号
'而不是双引号"来包含s/regexp/replacement/,所以你不需要转义"在模式字符串中,因为在这种情况下,您的模式字符串不包含'。我找不到英文链接的模式拆分字符,我只找到了一个中文链接(blog.chinaunix.net/uid-12072359-id-2960859.html),也许你可以通过翻译来理解。
标签: xml bash shell sed xml-namespaces