Como cat/grep string em vários arquivos delimitados por ponto-e-vírgula para capturar o endereço mac. Exemplo:
Pasta:
/home/acl
acl Arquivos:
acl1
acl2
informações de formato de string arquivos acl:
a;mac address;ip address;hostname
exemplo de arquivo acl1:
a;14:cc:20:00:73:02;192.168.1.150;CONTA1
exemplo de arquivo acl2:
a;13:aa:10:10:74:01;192.168.1.140;FINANCE2
tentativas
grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' acl1
Fora (resultado esperado)
13:aa:10:10:74:01
Existe alguma maneira simples de integrar esse resultado em uma variável?
Exemplo:
acl="grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' acl*"
obrigado
PD: Escolha difícil. Ambas as soluções estão corretas, mas devo escolher uma. Agradeço a todos
para extrair mac, use
awk
e;
como separadorOnde
-F\;
usar;
como separador,;
precisam ser escapados.'{print $2}'
imprimir segundo campocolocar em um uso var
ou
e use
"$var"
na linha de comando.Observe que isso depende de como você pode alimentar vários macs para arquivos
arpfilter
.Além da resposta do Archemar , você pode usar xargs para alterar seus arptables em uma única linha em vários arquivos acl: