LINUX.ORG.RU

Сообщения EXSHL

 

Вывод awk в несколько строк.

Добрый день. Поднаписал правило для фаервола (вход по белом списку IP+MAC)

W_FILE=/etc/lists/whitelist.conf
R_FILE=/etc/lists/rules
awk '{
printf "iptables -t nat -A prerouting_rule -m mac --mac-source " $2 " -s " $1 " -p tcp --dport 22 -j ACCEPT\n";
printf "iptables        -A input_rule      -m mac --mac-source " $2 " -s " $1 " -p tcp --dport 22 -j ACCEPT\n";
printf "iptables -t nat -A prerouting_rule -m mac --mac-source " $2 " -s " $1 " -p tcp --dport 80 -j ACCEPT\n";
printf "iptables        -A input_rule      -m mac --mac-source " $2 " -s " $1 " -p tcp --dport 80 -j ACCEPT\n"
}' $W_FILE | sed '/#/d' > $R_FILE
$R_FILE
Как сделать что бы awk передавал данные переменной в нормальном виде -несколько строк, а не все в одну строку. Я сделал вывод в файл (в файл выводит нормально), а потом брать из файла.

Если просто WHITELIST=`awk........ $WHITELIST - все валит в одну строку.

И еще как сделать фильтр по #. ? А то я сделал | sed '/#/d' :-) но работает. Думал еще что-то типа W_FILE=$(sed 's/#.*//' /etc/lists/whitelist.conf)

EXSHL
()

RSS подписка на новые темы