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

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

Re: [shell-script] Adicionar caminho de diretorio no fim de cada linha d


From: Petry
Subject: Re: [shell-script] Adicionar caminho de diretorio no fim de cada linha de um arquivo
Date: Wed, 2 Apr 2008 15:52:43 -0300

Julio,

Sempre usei sem as ", sempre com apenas a ` pra shell executar o comando e
nunca tive esse erro.

Na verdade ja fi o que queria, porém manualmente. Mas a título de registro,
e até caso venha a precisar fazer de novo segue a minha necessidade:

Tenho uma pasta A que recebe varios arquivos de varios sistemas, e tenho um
script rodando que trata esses arquivos como devem ser tratadose os move
para uma pasta backup.

O problema é que quando essa pasta A fica muito cheia, o script fica MUITO
lento, e a solucao que temos eh mover todos os arquivos dessa pasta A para
uma pasta temporaria B, e de la mover de poucos em poucos arquivos de volta
para a pasta A para o script tratar aos poucos esses arquivos.

A ideia do while eh fazer um loop p ele executar enquanto a pasta B tiver
mais que 5 arquivos.. daih ele copia 200 arquivos pra A ( head -200 ) e
aguarda 45s pelo processamento, pra testar se a pasta B ainda tem arquivos e
move-los.

Esse é só um temporário, tem outros incrementos que vou fazer... mas a
questão é conseguir mover de X em X arquivos, o que o XARGS ajudou muito.

Obrigado pela atenção,



Em 02/04/08, Julio C. Neves <address@hidden> escreveu:
>
>   Fala Petry,
> o problema não está na linha que escrevi, mas sim na linha do test. Vc
> deveria ter feito:
>
> while [ "`ls -la`" -gt 5 ]; do
>
> Porém não vejo sentido nisso, já que o ls irá te gerar um campo alfa e o
> -gt
> é uma comparação numérica.
>
> Diga o que vc pretende com este teste que a lista te ajuda.
>
> Abração,
> Julio
> A partir de 05/04 estarei dando um curso de Shell em SP.
> Mais informações em www.4linux.com.br ou (11) 2125-4747
>
> Em 02/04/08, Petry <address@hidden <petrybr%40gmail.com>> escreveu:
> >
> > Fala Julio!
> >
> > Excelente comando!!
> >
> > Quando executo ele direto na linha de comando, funciona que uma
> maravilha!
> > Mas quando coloco dentro de um script e executo ele da o seguinte erro:
> >
> > ./backlog.sh: [: too many arguments
> >
> > segue meu script
> >
> > % cat backlog.sh
> > #!/bin/bash
> > cd /pasta/original
> > pwd
> > while [ `ls -la` -gt 5 ]; do
> > echo "movendo arquivos"
> > ls | head -200 | xargs -i mv {} /pasta/para/onde/vai
> > echo "arquivos movidos"
> > sleep 45
> > done
> >
> > Obrigado!
> >
> > Em 02/04/08, Julio C. Neves <address@hidden<julio.neves%40gmail.com>
> <julio.neves%40gmail.com>>
> > escreveu:
> > >
> > > Fala Petry,
> > > Que tal não usar o sed e fazer um one liner assim:
> > >
> > > ls pasta | head -100 | xargs -i mv pasta/{} /home/teste/temp
> > >
> > > Temos que avaliar a performance, porém acho assim muito mais elegante.
> > >
> > > SuShellso,
> > > Julio
> > > A partir de 05/04 estarei dando um curso de Shell em SP.
> > > Mais informações em www.4linux.com.br ou (11) 2125-4747
> > >
> > > Em 02/04/08, Petry <address@hidden <petrybr%40gmail.com> <petrybr%
> 40gmail.com> <petrybr%
> > 40gmail.com>> escreveu:
> > > >
> > > > Pessoal, to fazendo um script que vai dar um ls numa pasta, pegar os
> > > > primeiros 100 arquivos e jogar isso pra um arquivo..
> > > >
> > > > daí com o sed consegui colocar no comeco de cada linha o comando "mv
> "
> > e
> > > > agora no fim de cada linha quero colocar a pasta pra onde eu quero
> > > enviar
> > > > o
> > > > arquivo, tipo /home/teste/temp
> > > >
> > > > porém estuo com problemas em fazer com o sed, por causa das "/" das
> > > > pastas,
> > > > q o sed esta interpretando.... como faço para ele não interpretar??
> > > >
> > > > ja coloquei \/, entre " ( "/home/teste/tmp" ) e entre ` (
> > > > `/home/teste/temp` ) e nao adiantou...
> > > >
> > > > nao encontrei essa info onde procurei ( livro do aurelio, site dele,
> > > site
> > > > só
> > > > sed e outros )..
> > > >
> > > > valeu
> > > > --
> > > > José Paulo de Oliveira Petry
> > > > address@hidden <petrybr%40gmail.com> <petrybr%40gmail.com>
> <petrybr%40gmail.com>
> > <petrybr%40gmail.com>
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> > --
> > José Paulo de Oliveira Petry
> > address@hidden <petrybr%40gmail.com> <petrybr%40gmail.com>
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>



-- 
José Paulo de Oliveira Petry
address@hidden


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



reply via email to

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