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. 2010/5/3 Lawrence Waclawiak <[email protected]> > > > 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! > > > -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ --------------------------------------------------------------------- Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. --------------------------------------------------------------------- Sair da lista: [email protected] --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [email protected] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
