变量在sed命令

时间:2017-11-19 15:00:06

标签: shell sed

如何在下面的命令中使用变量而不是3

sed -i '3s/$/ newvalue/' filename

我试过

var=1
sed -i '$vars/$/ newvalue/' filename
sed -i "$vars/$/ newvalue/" filename

1 个答案:

答案 0 :(得分:2)

首先,您需要使用double quotes来扩展shell参数/变量。然后,如果变量后面的文本可以解释为变量名称(before${var}after)的一部分,则需要使用braces to isolate the variable name。最后,要在双引号下使用文字$,您应该将其转义为黑色斜杠。一起来:

var=3
sed -i "${var}s/\$/ newvalue/" filename

一种替代方法是使用交替的双引号和单引号(在此引号下不会特别处理任何字符,包括用于参数扩展的$):

sed -i "$var"'s/$/ newvalue/' filename