Sim, isso pode ser feito com awk
:
BEGIN { RS = "}"; }
{
match($0, /fixed-address ([^;]+);/, array);
data[array[1]] = $0;
}
END {
n = asorti(data, dest);
for (i = 1; i <= n; i++) {
print data[dest[i]] RS;
}
}
Temos um servidor dhcpd compartilhado no qual definimos IPs fixos para nossos servidores de área restrita. Devido às limitações da sub-rede que não podemos evitar, somos obrigados a ter um pequeno e limitado intervalo de endereços IP estáticos para atribuir.
Devido a este e outros colegas de trabalho adicionar / remover hosts do arquivo dhcpd.conf
, ele é bastante longo e confuso agora e deve ser resolvido.
Como todas as declarações de ip seguem esse padrão:
host foo {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.192.X;
}
Isso pode ser feito com awk
? Se sim, como? Eu nunca tentei algo complexo com isso.
Tags awk