sed 变量替换和Linux的特殊符号大全

时间:2021-05-31 09:31:24

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元字符($,`,\):$用于变量值替换、`用于命令替换、\用于转义单个字符

\

反斜杠,转义,去除其后紧跟的元字符或通配符的特殊意义。

被双引号用括住的内容,将被视为单一字串。它防止通配符扩展,但允许变量扩展。这点与单引数的处理方式不同

参考

sed当中使用变量替换以及执行外部命令

linux特殊符号大全