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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: [shell-script] find com prune


From: Emerson Domingues Souto - H2M
Subject: RES: [shell-script] find com prune
Date: Fri, 3 Feb 2012 09:30:28 -0200

Oi gente, obrigado pelas dicas.
 
Respondendo a pergunta: Sim, tem que ser o find porque eu preciso usar o find 
com -exec grep  (preciso do grep pra documentar conteúdo desses arquivos texto 
que são procedures de BD Informix)
As dicas passadas com ls são muito boas, tanto é que estou usando elas, mas 
mesmo assim ainda tenho alguns problemas com o ls, conforme segue:
 
1) devido a quantidade muito grande de arquivos, quando executo "ls -l *.sql" 
aparece a mensagem "ksh: /usr/bin/ls: 0403-027 The parameter list is too long"
2) a performance está lenta (uso o grep pra cada arquivo listado no ls)
 
Todas as dicas que recebi sobre o find não funcionaram no AIX aqui da empresa, 
mas com certeza devem funcionar bem nas distribuições LINUX, por isso agradeço 
a atenção de todos desse grupo que é o melhor que eu já participei.
 
Caso alguem tenha mais alguma informação pra ajudar que funcione no AIX eu fico 
muito agradecido, mas se não tiver jeito eu vou rodar o script com o ls mesmo, 
só que acredito que assim fica mais lento ....
 
 
Obrigado,
 
 
Emerson Domingues Souto
Tecnologia da Informação
Marítima Seguros S/A
Fone: 11 3156-1017
 
 


________________________________

        De: address@hidden [mailto:address@hidden] Em nome de Moacir Souza
        Enviada em: quinta-feira, 2 de fevereiro de 2012 22:37
        Para: address@hidden
        Assunto: Re: [shell-script] find com prune
        
        
          

        E ainda mais,
        
        Não só os fontes estão disponíveis como a própria IBM também
        fornece alguns pacotes já prontos para instalações rápidas (RPM's
        nesse caso). Eu sou administrador Unix e evito usar esses pacotes
        tanto quanto posso, até porque, é muito difícil não existir outra
        maneira de fazer o mesmo que as ferramentas GNU fazem com seus
        facilitadores (como o -i do sed, que não existe no sed "puro" do AIX
        mas pode ser resolvido usando o esquema do arquivo temporário). Mas
        não me oponho à instalação deles quando é realmente necessário.
        Até agora você não respondeu se apenas usar o find interessa ou
        se quaisquer outras das soluções apresentadas que não usam ele já
        resolveriam seu problema. Faça o teste por aí com as dicas dadas por
        mim, Rodrigo, Fernando e Julio, mas se realmente nada solucionar,
        baixe o RPM do find e peça para seu administrador instalar o pacote. O
        link é esse: 
http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html
        
        Abraços,
        Moacir Filho
        
        2012/2/2 Julio C. Neves <address@hidden 
<mailto:julio.neves%40gmail.com> >
        >
        > Peraí, deixa fazer umas colocações:
        >
        >   - O ksh não é fraquinho não. É muito bom, demais, a beça... ;) O
        >   problema do ksh e dos UNIXES, é que a evolução é muito lenta;
        >   - O que vc queria dizer, é que o find (não GNU) é fraquinho, mas tb 
não
        >   é. Eu respondi à sua questão, pq achei que resolveria o seu 
problema mas
        >   tem uns 6 anos que só uso Linux e GNU find. Com certeza tem alguma 
forma do
        >   seu find fazer isso, mas não tenho mais máquina para testar.
        >
        > Por outro lado, o bash e todo o ambiente GNU têm os fontes 
disponíveis, é
        > só pedir ao seu admin para instalá-los.
        >
        > Abcs,
        > Julio
        > *Já foi lançado "Bombando o
        > 
Shell<http://www.brasport.com.br/index.php?dispatch=products.view&product_id=666>
        > ". *
        > *Show **de interfaces gráficas sob Shell!*
        > *
        > *
        >
        >
        >
        > Em 2 de fevereiro de 2012 16:40, Emerson Domingues Souto - H2M <
        > address@hidden <mailto:emersons.h2m%40maritima.com.br> > escreveu:
        >
        > > **
        > >
        > >
        > > O ksh parece ser muito fraquinho mesmo ..... nem o -path ele tá 
aceitando:
        > >
        > > $ find . -type d -path ./dir -prune -o -print
        > > find: 0652-017 -path is not a valid option.
        > > $
        > > $ uname -a
        > > AIX VAWS01 3 4 000301544C00
        > >
        > > Tem alguma outra forma ?
        > >
        > > Emerson Domingues Souto
        > > Tecnologia da Informação
        > > Marítima Seguros S/A
        > > Fone: 11 3156-1017
        > >
        > >
        > >
        > > > -----Mensagem original-----
        > > > De: address@hidden <mailto:shell-script%40yahoogrupos.com.br> 
        > > > [mailto:address@hidden <mailto:shell-script%40yahoogrupos.com.br> 
] Em nome de Julio C. Neves
        > > > Enviada em: quinta-feira, 2 de fevereiro de 2012 16:31
        > > > Para: address@hidden <mailto:shell-script%40yahoogrupos.com.br> 
        > > > Assunto: Re: [shell-script] find com prune
        > > >
        > > > Emerson, meus pêsames. Essa sintaxe do ksh é muito ruim e já
        > > > fui vítima dela muitas vezes (a do sort do UNIX ainda é pior).
        > > >
        > > > O -prune deve ser usado com o -path e com a opção -o (ou) para 
negar.
        > > >
        > > > A brincadeira é assim: vc especifica com -path os diretórios
        > > > que vc quer listar e o -prune não permite a invasão desses
        > > > diretórios. Veja:
        > > >
        > > > $ find . -path ./dir\* -prune -print
        > > > ./dir1
        > > > ./dir
        > > >
        > > > Mas veja tb:
        > > >
        > > > $ find . -type d -print
        > > > .
        > > > ./dir1
        > > > ./dir
        > > >
        > > > Quase a mesma coisa, não é?
        > > >
        > > > Mas vc deve ter reparado que sob o diretório corrente, eu
        > > > tenho somente 2
        > > > diretórios: dir e dir1. Se usar a opção -o (ou) para negar (seria 
um
        > > > "senão") esses diretórios, aí eu estaria listando tudo que
        > > > não fossem eles.
        > > > Assim:
        > > >
        > > > $ find . -type d -path ./dir -prune -o -print
        > > >
        > > > Nesse caso, listaria todos os arquivos do meu diretório corrente.
        > > >
        > > > A única vantagem desse tipo de construção sobre o -maxdepth é
        > > > que dessa forma eu posso selecionar quais diretórios eu
        > > > pretendo listar, independente de seus níveis e o -maxdepth só
        > > > me permite especificar a profundidade que o find mergulhará,
        > > > independente de seus diretórios.
        > > >
        > > > Abcs,
        > > > Julio
        > > > *Já foi lançado "Bombando o
        > > > Shell<http://www.brasport.com.br/index.php?dispatch=products.v
        > > > iew&product_id=666>
        > > > ". *
        > > > *Show **de interfaces gráficas sob Shell!*
        > > > *
        > > > *
        > > >
        > > >
        > > >
        > > > Em 1 de fevereiro de 2012 15:30, Emerson Domingues Souto -
        > > > H2M < address@hidden <mailto:emersons.h2m%40maritima.com.br> > 
escreveu:
        > > >
        > > > > **
        > > > >
        > > > >
        > > > > Estive lendo o manual e entendi que o -prune faz com que o
        > > > find liste
        > > > > os arquivos do diretório corrente, sem se aprofundar nos
        > > > subdiretórios
        > > > > (o contrário do -depth)
        > > > >
        > > > > O problema é que estou usando -prune e o find está listando
        > > > apenas o
        > > > > diretório corrente e não está listando os arquivos.
        > > > >
        > > > > O que eu preciso é que o find liste apenas os arquivos do 
diretório
        > > > > corrente, ou seja, no meu exemplo é para ele listar apenas
        > > > os arquivos
        > > > > arq1.txt e arq2.txt
        > > > >
        > > > > Alguém pode me ajudar ?
        > > > >
        > > > > Segue exemplo de comando find com -prune que eu executei e não 
me
        > > > > trouxe o resultado desejado:
        > > > >
        > > > > # pwd
        > > > >
        > > > > /tmp/TESTE
        > > > >
        > > > > # ls -l
        > > > >
        > > > > total 32
        > > > >
        > > > > -rw-r--r-- 1 sqlsp informix 71 Feb 01 14:45 arq1.txt
        > > > >
        > > > > -rw-r--r-- 1 sqlsp informix 134 Feb 01 14:45 arq2.txt
        > > > >
        > > > > drwxr-xr-x 2 sqlsp informix 512 Feb 01 14:46 dir1
        > > > >
        > > > > drwxr-xr-x 2 sqlsp informix 512 Feb 01 14:46 dir2
        > > > >
        > > > > # find .
        > > > >
        > > > > .
        > > > >
        > > > > ./arq1.txt
        > > > >
        > > > > ./arq2.txt
        > > > >
        > > > > ./dir1
        > > > >
        > > > > ./dir1/arq3.txt
        > > > >
        > > > > ./dir1/arq4.txt
        > > > >
        > > > > ./dir2
        > > > >
        > > > > ./dir2/dir5.txt
        > > > >
        > > > > # find . -prune
        > > > >
        > > > > .
        > > > >
        > > > > # uname -a
        > > > >
        > > > > AIX VAWS01 3 4 000301544C00
        > > > >
        > > > > Emerson Domingues Souto
        > > > >
        > > > > Tecnologia da Informação
        > > > >
        > > > > Marítima Seguros S/A
        > > > >
        > > > > [As partes desta mensagem que não continham texto foram 
removidas]
        > > > >
        > > > >
        > > > >
        > > >
        > > >
        > > > [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: address@hidden 
<mailto:shell-script-unsubscribe%40yahoogrupos.com.br> 
        > > > ----------------------------------------------------------
        > > > 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
        > > >
        > > >
        > > >
        > >
        > >
        >
        >
        > [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: address@hidden 
<mailto:shell-script-unsubscribe%40yahoogrupos.com.br> 
        > ----------------------------------------------------------
        > 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
        >
        >
        
        --
        ==========================================
        Moacir da Cruz Souza Filho
        
        Analista de Sistemas: Suporte Unix Avançado
        Mestrando em Ciências da Computação
        Bacharel em Engenharia da Computação
        Técnico em Eletrônica
        Linux user #449600
        ==========================================
        

        



[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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