Цель состоит в том, чтобы изменить некоторые последовательные правила в файле iptables, добавив несколько новых правил, собранных в массив bash (который может быть сохранен во временный файл при необходимости).
Правила для изменения в rules.v4
:
-A ufw-user-input -s <ip_address_1>/<mask_1> -j ufw-logging-input
-A ufw-user-input -s <ip_address_2>/<mask_2> -j ufw-logging-input
-A ufw-user-input -s <ip_address_3>/<mask_3> -j ufw-logging-input
Эти строки могут быть сопоставлены с: -A ufw-user-input -s [0-9./]+ -j ufw-logging-input
или могут быть доступны в массиве iptables_ipv4_user_input_rules[@]
Все они должны быть заменены в файле iptables rules.v4
содержимым другого массива, содержащего другой набор переменного числа правил: online_ipv4_user_input_rules[@]
или из файла, содержащего те же строки:
-A ufw-user-input -s <ip_address_4>/<mask_4> -j ufw-logging-input
-A ufw-user-input -s <ip_address_5>/<mask_5> -j ufw-logging-input
-A ufw-user-input -s <ip_address_6>/<mask_6> -j ufw-logging-input
-A ufw-user-input -s <ip_address_7>/<mask_7> -j ufw-logging-input
Я понятия не имею, как реализовать это с помощью sed или awk.
Изменяемые правила содержат переменное количество строк с переменными номерами строк, поэтому следующий пост здесь не применяется: