我是新手,我想用 sed 替换“特殊”字符。我有一个 xml 文件,它的格式不正确,并且在任何数据行的末尾都以“>”结尾,我需要废弃它并执行此操作,我需要将“>”更改为“/>”。但是当我尝试时:
sed -i s/>//>/g FILE
returns => -bash://: 是一个目录
同上:
sed -i s/>/\/>/g FILE
还有
sed -i s,>,\>,g FILE
手册页没有解决这个问题。
有人遇到过这个问题吗?
最佳答案
如果你使用它作为分隔符,你应该转义斜杠字符:
sed 's/>/\/>/g'
或者使用其他字符,例如:
sed 's_>_/>_g'
请注意,这将替换文件中的所有匹配项,而不仅仅是最后一个
如果你只想匹配前面没有/
的>
,你可以这样使用:
sed -r 's_[^/]>_/>_g' file
关于linux - sed 将 ">"替换为 "/>"bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18495885/