Ответ 1
Вы можете использовать следующую команду:
iptables-save | sed -r '/PREROUTING.*comment.*test it/s/-A/iptables -D/e'
iptables-save
вернет команды iptables, которые могут быть выполнены для возврата текущего состояния брандмауэра после перезагрузки или что-то еще.
Значение будет содержать строки типа:
...
-A PREROUTING -p tcp -m tcp --dport 25 -j ACCEPT -m comment --comment "test it"
...
Команда sed
выполняет поиск строк, содержащих PREROUTING.*comment.*test it
(должно быть достаточно) и добавляет термин iptables
плюс заменяет -A
на -D
, так как -D
удаляет правило. Результат операции замены затем выполняется с помощью команды e
. Команда e
является расширением GNU до sed
.
Примечание. Если вы хотите напечатать команду в дополнение к простому ее выполнению, вы можете использовать s/-A/iptables -D/pe
.