shell-script-pt
[Top][All Lists]
Advanced

[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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]