|
在 sed 的替换语句中经常会将整个替换语句用单引号括起来,如果此时需要替换的那部分内容希望用变量来替代,且该变量所带便的内容不含有空格时,那么可以可以将该变量直接用单引号括起来,如:beyes@linux-xh53:~/shell/3366> declare MYVAR=net
beyes@linux-xh53:~/shell/3366> echo "groad.com" | sed 's/com/'$MYVAR'/g'
groad.net
如果上面的变量 MYVAR 的内容是含有空格的,那么不能直接用双引号,否则将导致语句语法错误,如:beyes@linux-xh53:~/shell/3366> declare MYVAR="net cn"
beyes@linux-xh53:~/shell/3366> echo $MYVAR
net cn
beyes@linux-xh53:~/shell/3366> echo "groad.com" | sed 's/com/'$MYVAR'/g'
sed: -e expression #1, char 9: unterminated `s' command
此时,应该将替换语句外部的单引号改写成双引号,而原来框住变量的单引号去掉,如下所示:beyes@linux-xh53:~/shell/3366> echo "groad.com" | sed "s/com/$MYVAR/g"
groad.net cn |
|