Строки Grep для нескольких слов и окончания строки, а затем замените окончание строки, если оно совпадает

Мне нужно найти длинный текстовый файл для строк, содержащих несколько возможных слов, а также заканчивающихся на =1, а затем заменить строку тем же текстом, за исключением изменения =1 на =0.

Я использую BBEdit.

Пока у меня есть это, чтобы найти строки, содержащие желаемое совпадение, которое также заканчивается на 1:

^(.*test|.*disabled|.*inactive|.*server).*(=1)

Однако я не могу успешно выполнить замену.

Вот несколько примеров строк текста из файла:

OU>2020,OU>Disabled Accounts,DC>net,DC>example,DC>com=1
OU>Distribution Groups,DC>net,DC>example,DC>com=1
OU>Exchange Servers,DC>net,DC>example,DC>com=1
CN>Users,DC>net,DC>example,DC>com=1
OU>Test Servers,OU>Servers,OU>ABC,DC>net,DC>example,DC>com=1

Например, в первой строке выше значение =1 будет изменено на =0, например:

OU>2020,OU>Disabled Accounts,DC>net,DC>example,DC>com=0

Другие матчи будут следовать этому образцу.


person mindmischief    schedule 26.03.2021    source источник


Ответы (1)


Поиграв с ним больше, это, кажется, работает:

Находить:

(^.*(test|disable|inactive|server).*)(=1)$

Заменять:

\1=0
person mindmischief    schedule 26.03.2021