sed引入变量中的坑
sed引入变量问题
- 1、sed引入变量
- 2、sed引入变量问题
1、sed引入变量
sed
指令引入变量,直接使用双引号即可
例如,下面的示例:
a=b; echo "abc" | sed "s/b/$a/g"
2、sed引入变量问题
但是,如果变量值中带有/
等转义字符,sed
引入变量将出现问题
例如,下面的示例:
x="a/b/c"; echo 'yy' | sed "s/^/$x&/"
该语句将报错:
sed: -e expression #1, char 7: unknown option to `s'
解决方案如下:将变量值中的/
等转义字符先替换为非转义字符,再引用替换后的变量,最后再替换回来
例如,下面的示例:
x="a/b/c"; y=`echo $x | sed 's/\//@/g'`; echo 'yy'| sed "s/^/$y&/" | sed 's/@/\//g'