The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
renomear arquivos anushree.a Programação Shell Script e 3 09-30-2008 05:30
renomeando xls systemsb UNIX para Dummies Perguntas & Respostas 2 10-19-2007 08:50
Ajuda ao renomear arquivo! kumarsaravana_s UNIX para Dummies Perguntas & Respostas 5 05-02-2007 01:45
Renomeando um nome de arquivo dbrundrett Programação Shell Script e 2 01-06-2004 10:36
Renomeando um arquivo com o mesmo nome lachino8 UNIX para Dummies Perguntas & Respostas 3 07-31-2002 09:52

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-13-2008
Larne larne is offline
Usuário
  
 

Join Date: Oct 2008
Lugares: 11
arquivo renomeando

Como faço para renomear arquivos denominados como estas

Código:
iq - 000001 - 2008.07.31 - 14.49.47 - location1.bin
iq - 000001 - 2008.07.31 - 14.49.47 - location12.bin
iq - 000008 - 2008.07.31 - 14.52.01 - location500.bin

para

Código:
iq_2008.07.31_14.49.47_location1.bin
iq_2008.07.31_14.49.47_location12.bin
iq_2008.07.31_14.52.01_location500.bin

Eu sei como a perder os espaços, mas eu cant descobrir como saltar a 00000X parte dos nomes dos ficheiros. I cant substitui-lo pois não sei qual o número que vai estar lá? E eu cant realmente cortá-la desde que eu não sei quanto tempo o nome do arquivo é dado local pode variar, ou posso? Qualquer idéias?
Atenciosamente
  #2 (permalink)  
Old 10-13-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2007
Mensagens: 4.346
Tente este:


Código:
ls -1 iq*.bin | awk '{print "mv "$0" "$1"_"$5"_"$7"_"$9}'

Se o comando estiver correta, o resultado para cachimbo sh:


Código:
ls -1 iq*.bin | awk '{print "mv "$0" "$1"_"$5"_"$7"_"$9}' | sh

Atenciosamente
  #3 (permalink)  
Old 10-13-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programador, autor
  
 

Join Date: Mar 2007
Localização: Toronto, Canadá
Mensagens: 2.380
Citação:
Originally Posted by Franklin52 View Post

Código:
ls -1 iq*.bin | awk '{print "mv "$0" "$1"_"$5"_"$7"_"$9}'

Não há necessidade de -1 quando a saída de ls não está indo para um terminal. De fato, não há necessidade de ls a todos:


Código:
printf "%s\n" iq*.bin | awk '{printf  "mv \"$0\" \"%s_%s_%s_%s\"\n", $1, $5, $7, $9}'

(printf é um reservatório BUILTIN em todos os grandes reservatórios.)
  #4 (permalink)  
Old 10-13-2008
treesloth treesloth is offline
Usuário
  
 

Join Date: Oct 2008
Localização: Orem, Utah
Lugares: 73
Citação:
Originally Posted by cfajohnson View Post
Não há necessidade de -1 quando a saída de ls não está indo para um terminal. De fato, não há necessidade de ls a todos:
Existe uma razão pela qual


Código:
printf "%s\n" iq*.bin

é preferível à
Código:
ls iq*.bin

?
  #5 (permalink)  
Old 10-14-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programador, autor
  
 

Join Date: Mar 2007
Localização: Toronto, Canadá
Mensagens: 2.380

printf é construído em todos os grandes reservatórios; ls é sempre um comando externo e, portanto, mais lento.

Também é overkill, uma vez que o reservatório se expande o curinga e ordena a lista de ficheiros.
  #6 (permalink)  
Old 10-14-2008
summer_cherry summer_cherry is offline Forum Advisor  
Usuário
  
 

Join Date: Jun 2007
Localização: Beijing China
Mensagens: 1.098

Código:
echo "iq - 000001 - 2008.07.31 - 14.49.47 - location1.bin" |
nawk -F" - " '{
print $1"_"$3"_"$4"_"$5
}'


Código:
iq_2008.07.31_14.49.47_location1.bin

  #7 (permalink)  
Old 10-13-2008
Larne larne is offline
Usuário
  
 

Join Date: Oct 2008
Lugares: 11
muito obrigado para a solução limpa
Eu só tinha que tinha acrescentar \ "cerca de" $ 0 "uma vez que o nome do arquivo contém espaços
Closed Thread

Marcadores

Tags
renomear arquivos

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 12:22.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0