linux - sed 将 ">"替换为 "/>"bash

标签 linux bash shell ubuntu sed

我是新手,我想用 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/

相关文章:

bash - 如何在同一行显示和更新回显

linux - 使用启用密码的 sudo 帐户更改 root 密码身份验证的脚本

linux - bash script linux - 使用目录作为用户输入参数并将所有子目录复制到与输入目录同名的/tmp/文件夹

django - Gunicorn 因 203/EXEC 失败

linux - Bash 提供编号的结果供用户选择

linux - 显示大于0的文件内容

linux - 通过比较 shell 脚本中的两个字符串来请求变量

bash - 如何将命令行参数添加到shell脚本中

linux - 通过 bash 脚本运行时 psql 列名不存在

linux - shell脚本中ls和grep命令 "not found"错误