我是新手,我想用 sed 替换“特殊”字符。我有一个 xml 文件,它的格式不正确,并且在任何数据行的末尾都以“>”结尾,我需要废弃它并为此我需要用“/>”更改“>”。但是当我尝试时:
sed -i s/>//>/g FILE
return => -bash: //: 是一个目录
与:
sed -i s/>/\/>/g FILE
也与
sed -i s,>,\>,g FILE
手册页不能解决这个问题。
有人面临这个问题吗?
如果您使用它作为分隔符,您应该转义斜杠字符:
sed 's/>/\/>/g'
或使用另一个字符,例如:
sed 's_>_/>_g'
请注意,这将替换文件中的所有匹配项,而不仅仅是最后一个
如果您只想匹配>
不以 开头/
,则可以使用以下命令:
sed -r 's_[^/]>_/>_g' file
sed -i 's/>$//>/g' FILE 对你有用吗?
$ echo "<blah> <blah>" | sed 's/>$/\/>/g'
<blah> <blah/>