sed引用变量

http://dadi.me/1064

 

2、sed命令使用单引号的情况下,可以使用'"$var"'引用(单引号,然后双引号,变量):

echo | sed 's/^/'"$RANDOM"'.rmvb_/g'

2442.rmvb_

 

 

sed中执行外部命令

1、sed命令使用单引号的情况下使用'`shell command`'或者'$(shell command)'引用命令执行的结果:

echo | sed 's/^/'`echo $RANDOM`'.rmvb_/g'

7700.rmvb_# 结果

# 上面的命令使用了旧式的命令替换,也可以采用新式的命令替换方法,如下:

echo | sed 's/^/'$(echo $RANDOM)'.rmvb_/g'

13856.rmvb_# 结果

# 下面例子取用当前日期作为结果的一部分,如下:

echo | sed 's/^/'$(date +"%Y%m%d")'.rmvb_/g'

20130401.rmvb_ # 结果

2、sed命令中使用双引号的情况下,直接`shell command`或者$(shell command)引用命令执行。

echo | sed "s/^/$(date +"%Y%m%d").rmvb_/g"

20130401.rmvb_# 结果

# 使用环境变量$RANDOM以及旧式命令替换的例子:

echo | sed "s/^/`echo $RANDOM`.rmvb_/g"

29484.rmvb_# 结果

总结一下

在sed语句里面,变量替换或者执行shell命令,双引号比单引号少绕一些弯子;所以,sed和变量的关键词搜索的结果,众多都写上替换单引号为双引号。

额外

再来一个例子,大地在写一个shell脚本的使用,用的是如下方法来替换。

sed -i 's/^.*rpc-username.*/"rpc-username": "'$(echo $username)'",/' /var/lib/transmission-daemon/info/settings.json

很多时候,也许因为内容中也有双引号或单引号,所以,上面介绍的众多方法,在不确定的情况下,可以分别尝试使用。方法倒是其次,至少得先确保你的脑子不会成为一团浆糊,找到自己熟悉的。

posted @ 2014-11-07 18:13  陳聽溪  阅读(2675)  评论(0)    收藏  举报