这有效
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/'