Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Controle de Laço

Colaboração: Gustavo Chaves

Data de Publicação: 15 de Setembro de 1998

O Gustavo mandou uma colaboração indicando uma maneira melhor de realizar um comando sobre múltiplos arquivos. A seguir a íntegra da mensagem:

    Queiroz> #!/bin/sh
    Queiroz> for file in ""find . -name \*.txt -print"" do
    Queiroz>    mv $file ""dirname $file""/""basename $file .txt"".doc
    Queiroz> done
  Olá Queiroz.
  Há algum tempo eu lhe mandei uma ``meta-dica'' a respeito do livro
  `UNIX Power Tools', da O'Reilly.  Uma das dicas mais legais que eu
  aprendi com ele foi uma maneira de otimizar este loop.  Vamos
  simplificar e imaginar que você esteja no diretório contendo arquivos
  com extensão "".C' e que você queira trocá-las por"".cc'.  Antes de ler
  o livro eu fazia o seguinte:
          for i in *.C
          do mv $i ""basename $i .C"".cc
          done
  Note que pra cada arquivo são invocados dois processos: o basename e o
  mv.  A dica do livro mostra como fazer isto invocando apenas três
  processos e mais um pra cada arquivo.  Veja:
           ls *.C | sed 's/\(.*\).C$/mv \1.C \1.cc/' | sh
  O ls gera a lista dos arquivos a serem renomeados, um por linha, e os
  passa ao sed que produz, para cada arquivo, um comando mv apropriado.
  Estes comandos mv são passados para uma instância da shell que os
  executa em seqüência, sem loop.  Se a lista tiver mais que três
  arquivos você já estará economizando ativações de processos.
  O que eu achei genial foi usar o sed pra construir um script
  on-the-fly e passá-lo para uma outra instância da shell.  É fácil
  aplicar este truque em outras situações.  O difícil (pelo menos para
  mim) seria tê-lo descoberto sozinho.

Veja a relação completa dos artigos de Gustavo Chaves

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.93/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 2.9 /5 (1274 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Expressões Regulares - Uma abordagem divertida 3ª edição