|
From: | Lawrence Waclawiak |
Subject: | Qual a forma mais eficiente para recuperar campos de um arquivo de texto? |
Date: | Mon, 03 May 2010 17:51:01 -0300 |
User-agent: | Thunderbird 2.0.0.23 (X11/20090817) |
Boa tarde a todos,Desenvolvi um script para gerar o arquivo dhcpd.conf a partir de uma base de dados salva em arquivo de texto simples com cada maquina em uma linha e os campos separados por ;(ponto e virgula).
O formato dessa base de dados é o seguinte: #nome;mac;local;so;gw;ip;status;comentario; pc-301;00:e0:7d:f4:c6:cb;Cobrança;Win_XP;10.10.48.1;10.10.48.20;Manutencao;; pc-302;00:1D:7d:83:fe:d1;Cobrança;Win_2000;;;Ativo;; pc-303;00:1f:c6:60:47:86;Cobrança;Win_XP;;;Ativo;; pc-304;00:1c:c0:43:62:b5;Cobrança;Win_XP;;;Ativo;; A base completa encontra-se em: http://pastebin.com/Hx7Bpjgj O script que criei utiliza o cut dentro de um for para recuperar os campos. Pc=$(echo $LINE |cut -d";" -f1) Mac=$(echo $LINE |cut -d";" -f2) Local=$(echo $LINE |cut -d";" -f3) So=$(echo $LINE |cut -d";" -f4) Gw=$(echo $LINE |cut -d";" -f5) Ip=$(echo $LINE |cut -d";" -f6) Status=$(echo $LINE |cut -d";" -f7) Coment=$(echo -e $LINE |cut -d";" -f8) O script completo encontra-se em: http://pastebin.com/xLLzMkKL A função que trata dessa separação é a função corpo().Tudo funciona corretamente porém a maquina demora um pouco para processar toda a lista e montar o dhcpd.conf, gostaria de saber se alguém conhece uma forma mais eficiente de recuperar o valor desses campos que não seja o que eu utilizei nem o awk -F';' '{print $x}' pois esse é mais pesado ainda. A maquina que estou utilizando é bastante forte, um dell poweredge 1950 8Gb de ram 2 processadores xeon quadcore de 2.8Ghz e memso assim para processar essa pequena base leva cerca de 600ms medidos com o comando time.
Muito obrigado!
[Prev in Thread] | Current Thread | [Next in Thread] |