Я пытаюсь написать сценарий sed, который заменяет часть строки, но только на строках, в которых нет знака «$».Скрипт Sed, который соответствует строкам, содержащим строку, но не включает в себя другую строку
Например, файл может выглядеть
host=$myvar
param1=val1
param2=val2
host=abc
host=def
Я хочу, чтобы заменить «хост = ABC» и «хост = DEF» с «хост = ZZZZZ» и игнорировать «хост = $ MyVar» , Таким образом, конечный результат должен выглядеть так:
host=$myvar
param1=val1
param2=val2
host=zzzzz
host=zzzzz
Я пробовал несколько выражений регулярных выражений, но они не сработали.
Почему в 2-х операциях, когда одна подстановка может позаботиться об этом, используйте '^ \ (host = \) [^ $] *' (см. Мой ответ ниже) – anubhava