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
tar xf automática de arquivo com nome desconhecido tkrahn UNIX para Dummies Perguntas & Respostas 3 07-11-2007 08:25
O download automático de csv utilizando um script Figaro Programação Shell Script e 1 01-13-2007 08:53
Arquivo aumento chapmana UNIX para Dummies Perguntas & Respostas 7 11-24-2006 09:54
Automático Cópia do conteúdo do arquivo para a Área de Transferência ilak1008 Programação Shell Script e 5 10-10-2006 12:43
unix arquivo transferência automática tagem UNIX & avançada para usuários experientes 4 11-14-2005 08:50

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 05-28-2007
Steiner steiner is offline
Usuário
  
 

Join Date: Jul 2003
Localização: Hambach - França
Lugares: 29
Automático nome arquivo com aumento

Olá,

Um arquivo chamado c15a está registado no meu disco todos os 10 minutos.

Devo renomear o arquivo com a data e efectivamente um aumento automático do número de 5 dígitos, assim como: c15a.20070528.00001 e será o próximo arquivo: c15a.20070528.00002.

O próximo dia para amanhã, a cinco dígitos devem ser repostos para 00.001 assim como para amanhã: c15a.20070529.00001.

Tenho feito o script com o renomear com a data, mas eu tenho um problema com o aumento automático número.

Então, vocês podem me ajudar com esse crescente número cinco dígitos e reset automático quando o dia mudou.

Então, graças um lote, tchau.
  #2 (permalink)  
Old 05-28-2007
aigles's Avatar
aigles aigles is offline Forum Advisor  
Usuário
  
 

Join Date: Apr 2004
Location: Bordeaux, França
Mensagens: 1.433
Você pode tentar algo assim:

Código:
filename=c15a

datestamp=$(date +%Y%m%d)
last_file=$(ls -1 $filename.$datestamp.* 2>/dev/null | tail -1)
if [ -z "$last_file" ]
then
  number=1
else
  number=$(( ${last_file##*.} + 1 ))
fi
new_filename=$(printf "%s.%s.%05.5d" "$filename" "$datestamp" "$number")

mv $filename $new_filename

Jean-Pierre.
  #3 (permalink)  
Old 05-29-2007
Lorcan lorcan is offline
Usuário
  
 

Join Date: May 2007
Lugares: 219
Excluído o mapa ...

Última edição por Lorcan; em 05/29/2007 01:50.. Motivo: Declaração estava errado wrt a questão
  #4 (permalink)  
Old 05-29-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Usuário
  
 

Join Date: Sep 2006
Posts: 2.558
Citação:
Originally Posted by Lorcan
Aigles, Apenas uma pequena correção no seu código,
para obter o arquivo mais recente que temos para ordenar com base no tempo,

assim a linha 4. deve ter sido


Código:
last_file=$(ls -t1 $filename.$datestamp.* 2>/dev/null | tail -1)

normalmente, se usada com cauda -1, que gostaríamos ls-1tr vez. no entanto, para este caso específico, acho que porque os ficheiros estão já timestamped, com um número na parte de trás, ao fazer ls -1, a sua ainda "ordenadas" até o último arquivo.
  #5 (permalink)  
Old 05-29-2007
Lorcan lorcan is offline
Usuário
  
 

Join Date: May 2007
Lugares: 219
Citação:
Originally Posted by ghostdog74
normalmente, se usada com cauda -1, que gostaríamos ls-1tr vez. no entanto, para este caso específico, acho que porque os ficheiros estão já timestamped, com um número na parte de trás, ao fazer ls -1, a sua ainda "ordenadas" até o último arquivo.

Sim, realmente seu estão corretas. Plz ignore minha msg anterior
  #6 (permalink)  
Old 05-29-2007
Steiner steiner is offline
Usuário
  
 

Join Date: Jul 2003
Localização: Hambach - França
Lugares: 29
Aumento automático de arquivo

Olá,

obrigado pela sua resposta rápida.

Só uma pergunta: o pouco abaixo é em C codificação, não é?

new_filename \u003d $ (printf "% s.% s.% 05.5d" "$ filename" "$ data" "$ number")

A mesma linha em shell script pode ser melhor porque eu não sou um C desenvolver.

Ok thanks alot tchau.
Closed Thread

Marcadores

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 04:14.


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