使用Bash从XML文件中删除文本



我有一个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 -i 's/xmlns="http://feed.elasticstats.com/schema/nascar/series-v2.0.xsd"//g' drivers_list.xml

那么输出应该如预期的那样
当然,使用这种方法,您将无法获得同样有效的xmlns='...'定义。

查找它--sed替换中的分隔符

Sed can use any character as a delimiter. 
In fact, it will automatically use the character following the `s` as a delimiter.

相关内容

  • 没有找到相关文章

最新更新