我试过几十种不同的sed选项,但还没有找到可用的组合。我试图把:替换不同字符串的结尾
test(3) = var
other(8) = var
test(13) = var
...
到:
test(3) = newvar
other(8) = var
test(13) = newvar
...
我现在遇到的问题是在括号中的变化值。我想在之后编辑的值,以防止被捕获并分配它。我尝试了以下方法,认为我可以在括号内使用.*
作为通配符,但似乎无法使其工作。如果你想使用
sed -i.bak 's/^\([^=]* *= *\).*$/\1newvar/' file
(直到=
发现从开始)这将匹配RHS字符串,由newvar
代替:
sed -n "s/\(test(.*\)\s+\w+/\1) = newstuff/g" file.txt
为什么不只是做单曲的/ var/newvar /'? –
对不起,这是一个MWE,可能有点太简单。我不能这样做,因为'var'正在改变('newvar'存储在一个数组中)。 – Blink