制作sed-command的oneliner

时间:2016-05-18 14:29:36

标签: bash shell unix sed

在过去一天经过大量尝试之后,我无法在1行上执行以下命令:

sed '/'"$var1"'/ {n;n;a '\'"$var2"\'' \\ 
}' tempproject.cfg

当我像上面那样运行时,它匹配$ var1并用$ var2替换它后面的第3行。

sed命令应该执行的示例:

  var1=c
  var2=hello
a                                                              a
b                                                              b         
c                                                              c
d      =>     sed '/'"$var1"'/ {n;n;a '\'"$var2"\'' \\  =>     d
e              }' tempproject.cfg                              e
f                                                              'hello' \
g                                                              g
h                                                              h

当我将命令放在1行时,我收到以下错误:

sed: -e expression #1, char 0: unmatched `{'

提前致谢!

1 个答案:

答案 0 :(得分:0)

$var1=c
$var2=hello
$sed "/$var1/{n;n;n;s/.*/'$var2' \\\  /}" tempproject.cfg

应该给你

a
b
c
d
e
'hello' \  
g
h
i

为什么要使用three backslash