带尖括号的 sed

带尖括号的 sed

这有效

sed 's/[[:space:]]*<default>false/XXX/'

为什么前置 a 会>导致失败

sed 's/>[[:space:]]*<default>false/XXX/'

逃避>也没有帮助。在其他情况下>似乎工作得很好。为什么不在这里?

文本:<key type="b" name="launcher-minimize-window"> <default>false</default>

答案1

正如您已经告知的那样格伦·杰克曼在评论中:

sed一次读取一行的输入,因此除非您正在执行一些编程来累积行,否则不会有任何换行符匹配

你可以推动GNUsed-z使用选项将所有文件视为单行

-z,--空数据

      separate lines by NUL characters

所以你可以尝试

sed -z 's/>[[:space:]]*<default>false/XXX/'

相关内容