Linux 三剑客
sed解决特殊字符
参考:https://blog.csdn.net/genghongsheng/article/details/120432010
| 实现目标 | 方法 | 能否用单引号还是双引号括起来 | ||
| 单引号 | 双引号 | 为什么 | ||
| 反斜杠(\)替换成两个反斜杠(\\) | sed -i 's#\\#\\\\#g' file 或sed -i 's:\\:\\\\:g' file | √ | × | 反斜杠用双引号括起来会报错 |
| 反斜杠(\)替换成正斜杠(/) | sed -i 's#\\#\/#g' file | √ | × | 反斜杠用双引号括起来会报错 |
| 双引号(")替换成两个双引号("") | sed -i 's#\"#\"\"#g' file sed -i "s#\"#\"\"#g" file | √ | √ | |
| 单引号(')替换成两个单引号('') | sed -i "s#'#''#g" file | × | √ | 不能用单引号括起来,分不清了 |
| 美元符($)替换成\$ | sed -i 's:\$:\\\$:g' file | √ | × | 不能用双引号,否则会认为是$(正则匹配结尾位置)行的结果追加字符呢 |