shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Procurar conteúdo de um array em outro.


From: itamarnet
Subject: Re: Procurar conteúdo de um array em outro.
Date: 30 Oct 2014 12:27:45 -0700

Luis Fernando
me permita algumas observações em alguns pontos, pois já fiz algo similar. 
Talvez ajude a ter uma nova opção:

Nesse trecho não é possível reduzir os pipes agrupando o dois greps ou filtrando no awk?
Ou até eliminar o xargs?
Original:
ARRTABLES=(`iptables -nL MAC | tr [A-F,M] [a-f.m] | grep all | grep 'mac ' | awk '{ print $7 }' | xargs`)

Sugestões: Estou supondo que 'all' venha antes do 'mac ', do contrário é só inverter.
ARRTABLES=(`iptables -nL MAC | tr [A-F,M] [a-f.m] | grep 'all.*mac ' | awk '{ print $7 }' | xargs`)
ARRTABLES=(`iptables -nL MAC | tr [A-F,M] [a-f.m] | awk '/all.*mac / { print $7 }' | xargs`)
ARRTABLES=(`iptables -nL MAC | tr [A-F,M] [a-f.m] | awk '/all.*mac / { printf $7 " " }'`)



No caso do bloco for, que tal usar apenas um loop assim:

for i in ${ARRCADAST[*]}
do
echo ${ARRTABLES[*]} | grep $i >/dev/null 2>&1
if [ $? -eq 1 ]
then
iptables -I MAC 1 -m mac --mac-source $i -j RETURN
echo "Mac cadastrado: $i"
fi
done


É uma sugestão baseado nas experiências que tive, não testei se funciona, mas pode ser uma alternativa para uso

[]'s
Itamar

reply via email to

[Prev in Thread] Current Thread [Next in Thread]