我的模式如下
#error value for eg1
$text=1
我想将上面的模式替换为
#error value for eg1
$text=0
如何在linux中使用sed实现这一目的?
答案 0 :(得分:0)
我会做什么:
sed '/#error value for eg1/{h;n;s/$text=1/$text=0/}' file
如果你有像你的评论那样的用户输入似乎说:
input=$1 # first argument of the script
# double quotes mandatory here for the variable `$input` to be evaluated :
sed "/#error value for $input/{h;n;s/\$text=1/\$text=0/}" file
答案 1 :(得分:0)
这样的事情:
sed -n '/^#error value for eg1$/{p;n;s/^\(\$text=\)1$/\10/};p' file
答案 2 :(得分:0)
这可能适合你(GNU sed):
sed -r 'N;s/^(#error value for eg1\n\$text=)0$/\11/;P;D' file
读取两行,只有两行匹配时才更改第二行。