Questão Unix para um arquivo de formato de data

0

Meu nome de arquivo estará no formato de data. por exemplo: 20160920-A.cc1. Todos os dias vou recebendo arquivo diferente, com a data atual (aaaammdd-A.cc1). Eu preciso arquivar este arquivo com o mesmo nome que é carregado e também com data e timestamp como um sufixo para o arquivo.

Então minha entrada é como 20160920-A.cc1 e saída que é movida para outra pasta e que deve ser assim   20160920-A.cc1_20160920-hh:mm:ss

Por favor, ajude nisso.

    
por Janani 20.09.2016 / 10:51

3 respostas

1

Você só precisa entender o comando date em detalhes. veja date --help .
No seu caso, para arquivar como um uso de tarball,

tar czf filename_'date +%Y%m%d_%H_%M_%S'.tar.gz filename

ou seja,

tar czf 20160920-A.cc1_'date +%Y%m%d_%H_%M_%S'.tar.gz 20160920-A.cc1  

cólon : não é um nome de arquivo válido, portanto, usado como sublinhado _ em vez de hh: mm: ss.

    
por 20.09.2016 / 11:16
1

Acho que trabalhar com o comando date deve fazer o truque.

echo some fancy data for the file > $(date +"%Y%m%d")-A.cc1
cp $(date +"%Y%m%d")-A.cc1 <another folder path>/$(date +"%Y%m%d")-A.cc1_$(date +"%Y%m%d-%H:%M:%S")

Se você deseja copiar o arquivo em uma data diferente na qual ele foi criado - use o seguinte:

cp {,<another path>/}20160919-A.cc1
mv <another path>/20160919-A.cc1{,_$(date +"%Y%m%d-%H:%M:%S")}

Importante: use um loop se você quiser copiar vários arquivos

    
por 20.09.2016 / 11:17
0

Obrigado Tejas & Keocra.

Também tentei como abaixo do formato. Mas funcionará apenas para o dia atual.

mv 20160919-A.cc1 'date "+%Y%m%d"'-A.cc1_'date +%Y%m%d_%H_%M_%S'

E meu OutPut é:

20160920-A.cc1_2016_09_20_16:50:00
  • OBSERVAÇÃO: Isso selecionará mover o arquivo com a data atual como prefixo e sufixo e não uma data específica do arquivo de entrada
por 20.09.2016 / 13:22