我想写一个sed脚本来替换一部分行,但只在行中没有“$”符号。Sed脚本匹配包含一个字符串,但不包含另一个字符串的行
例如,该文件可能看起来像
host=$myvar
param1=val1
param2=val2
host=abc
host=def
我要替换“主机= ABC”和“主机=高清”与“主机= ZZZZZ”而忽略了“主机= $ MYVAR” 。所以最终的输出应该是这样的:
host=$myvar
param1=val1
param2=val2
host=zzzzz
host=zzzzz
我试了几个正则表达式,但他们没有工作。
为什么在2个操作中,当单个替换可以通过使用'^ \(host = \)[^ $] *'来处理它时(请参阅下面的答案) – anubhava