用sed替换用户提供的变量的特定行

时间:2013-07-09 04:44:25

标签: sed

我的代码如下;它不起作用。

line_number=$1;
variable1=$2;

sed '\$line_number c\
\$variable1' file > tmp.out

如果我写下面那么它的工作。你能否建议如何让上面的代码运行?

sed '1 c\
<replace>abc</replace>' file > tmp.out

2 个答案:

答案 0 :(得分:1)

从单引号中取出变量,并且在变量之前不需要任何反斜杠:

sed "$line_number"' c\ 
'"$variable1" file > tmp.out

答案 1 :(得分:1)

你可以试试这个,

#!/bin/bash

line_number=$1;
variable1=$2;

sed "$line_number c\
$variable1" file > tmp.out

如果要在sed中使用变量值,则使用"(双引号)。 然后,它将由shell解释。