如何使用变量代替3下面的命令?
sed -i '3s/$/ newvalue/' filename
Run Code Online (Sandbox Code Playgroud)
我试过
var=1
sed -i '$vars/$/ newvalue/' filename
sed -i "$vars/$/ newvalue/" filename
Run Code Online (Sandbox Code Playgroud)
首先,您需要使用双引号来允许 shell 参数/变量扩展。然后,如果变量后面的文本可以解释为变量名称 ( ) 的一部分,则需要使用大括号来隔离变量名称before${var}after。最后,要$在双引号下使用文字,您应该使用黑斜杠对其进行转义。全部一起:
var=3
sed -i "${var}s/\$/ newvalue/" filename
Run Code Online (Sandbox Code Playgroud)
一种替代方法是交替使用双引号和单引号(在这种情况下,不会对任何字符进行特殊处理,包括$参数扩展):
sed -i "$var"'s/$/ newvalue/' filename
Run Code Online (Sandbox Code Playgroud)