[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: RES: [shell-script] Acho que eh eval
From: |
Julio Cezar Neves - DATAPREVRJ |
Subject: |
RES: RES: [shell-script] Acho que eh eval |
Date: |
Wed, 27 Apr 2005 14:01:26 -0300 |
| > supondo que no diretorio a ser pesquisado so houvesse nome
| de diretorios
| > (como em /home, que parace ser o caso) para procurar
| somente no inicio das
| > palavras o fgrep nao funciona, mas a solucao com o grep
| seria muito mais
| > eficiente se fosse feita no one-liner abaixo:
| >
| > Prompt> grep -f <(cat Relatorio_de_nomes_incompleto.txt |
| xargs -i echo
| > ^{}) <(ls --color=none)
|
| Oi Julio,
|
| Com todo o respeito: Na minha opiniao, essa seria uma das
| solucoes menos
| eficientes (e interessantes) que poderia existir. :-) Mas sem
| problemas,
| cada um resolve o negocio como achar melhor...
|
| OBS1: Tu ta usando, no minimo, 3 pipes e 4 processos, sendo
| que para cada
| entrada em Relatorio_de_nomes_incompleto.txt tu vai ter um
| novo "fork".
Felipe, se vc tiver com tempo, faca um benchmark com as 2 solucoes. Apesar
de estar fazendo fork (2 e nao 4, pq o xargs resolve tudo em uma so passada
(se o arq.txt nao for enorme), para que ele pegasse registro a registro
teria de usar as opcoes -n1 ou -l1), estou tratando todo o arquivo
(provavelmente) de uma so vez gracas ao xargs.
Evito o qto posso usar o while que le registro-a-registro e ambos sabemos
que o tempo de I/O e enorme comparado a um fork (que e processado em
memoria, somente duplicando as variaveis exportadas e as de controle da
pilha de codigo (stack code)).
| OBS2: Veja mais em glob(3) - Essas procuras (comparacoes) sempre sao
| otimizadas pelo Sistema Operacional.
Essa e uma bela saida, pena que cada shell tem uma implementacao distinta do
glob.
| --
| Felipe Kellermann
- RES: RES: [shell-script] Acho que eh eval,
Julio Cezar Neves - DATAPREVRJ <=