1 sed支持两种方式的变量替换,建议使用下面的第二种,比较简单
这样就可以给变量a赋值很多特殊字符了,比如 赋值a='!@#¥%……'
sed -n 's/echo/'"$a"'/p' aa
sed -n "s/echo/$a/p" aa
这四种方法都可用,在这里跟大家分享下,=---同时谢谢netman大哥,前辈就是前辈哈哈
1.eval sed ’s/$a/$b/’ filename
2.sed "s/$a/$b/" filename
3.sed ’s/’$a’/’$b’/’ filename
4.sed s/$a/$b/ filename
2 Linux特殊字符大全,参见链接吧
shell转义字符 |
|
字符 |
说明 |
‘’ |
单引号,硬转义,其内部所有的shell元字符、通配符都会被关掉。注意,硬转义中不允许出现’(单引号)。 被单引号用括住的内容,将被视为单一字串。在引号内的代表变数的$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。 |
“” |
双引号,软转义,其内部只允许出现特定的shell元字符($,`,\):$用于变量值替换、`用于命令替换、\用于转义单个字符 |
\ |
反斜杠,转义,去除其后紧跟的元字符或通配符的特殊意义。 被双引号用括住的内容,将被视为单一字串。它防止通配符扩展,但允许变量扩展。这点与单引数的处理方式不同 |
参考