-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On 05/03/2010 06:04 PM, Tiago Peczenyj wrote:
> Para cada | e $( ) vc abre um subprocesso.
>
> Como vc faz isso durante MUITAS vezes o processo vai ser lento porem, se
> dura menos de 1 segundo, eu nao acho isto lento IMHO.
>
> Se vc criar um script awk no lugar do script shell vc nao tera esse
overhead
> dependendo de como vc cria-lo.
Acho que usar o IFS do jeito certo (você está usando do jeito errado;
está setando o IFS exatamente para o que ele já é na função
corpo) é ainda mais rápido. Além disso, você grava no arquivo de saída
variável por variável. Faça uma gravação de uma vez.
Já que sabemos quantos e quais são os campos, talvez algo assim:
http://pastebin.com/AChJJLd9 <http://pastebin.com/AChJJLd9>
Aqui não deu nem um segundo para comer sua base.
>
>
> 2010/5/3 Lawrence Waclawiak <address@hidden
<mailto:lawrencebbw%40yahoo.com.br>>
>
>>
>>
>> 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 <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 <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!
>>
>>
>>
>
>
>
- --
Um abraço
.0. MrBiTs - address@hidden <mailto:mrbits.dcf%40gmail.com>
..0 GnuPG -
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
<http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB>
000 http://www.mrbits.com.br <http://www.mrbits.com.br>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iQEcBAEBCAAGBQJL30QdAAoJEG7IGPwrPKWrr+kIAIOw7JBccnG32ymbbE1V0P1L
5suDVIF1tCg9lLNO2R3hXsuUxpq2R9gkK193uoncKlYxH5wZVoJ2PIFxf43BU8CH
0fqw2i1PubaGpdMYJvU1IloYpr6i6i62ZZLcMt98QbIHXa2ubx/0a8dDQ1d6u2zR
edLZNtxn3YY3y/1/lDMRRfAbx70Nj1n+Fb1MiYidMhIGBIkCtKKBns6Rpug8FSnQ
oRXhFSVkJV4aoX6E4RhaYFTztv5pDV5Vre7SILGuMyDkvVSl4QSFwtMyxatawCCZ
4GMeCbEOYuOgmgKXykzky0fuOakzELlzDI1i93tcF+2mk0uRtw8h6qVD2YrWqpo=
=2j/V
-----END PGP SIGNATURE-----