Extrai uma data de um nome de arquivo para o script CSH?

2

Estou tentando escrever um script CSH que examine os componentes do nome do arquivo para gerar uma data / hora. O problema é que não tenho idéia de como extrair parte de um nome de arquivo para usá-lo. Aqui está um nome de arquivo de amostra:

nam_218_20140126_1800_001.grb  

20140126 é a parte da data do nome do arquivo e 1800 é a hora. Eu preciso extraí-lo e convertê-lo para 2014-01-26_18:00:00 para uso em uma variável de ambiente. Alguma dica?

Obrigado

    
por WxPilot 28.01.2014 / 20:40

2 respostas

2
% set filename='nam_218_20140126_1800_001.grb' 
% set datetime='echo "$filename" | sed -r 's/.*_([0-9]{4})([0-9]{2})([0-9]{2})_([0-9]{2})([0-9]{2}).*/--_::00/''
% echo $datetime
2014-01-26_18:00:00
    
por Florian Diesch 03.02.2014 / 13:13
0

Use echo e cut . Leia man cut e faça algo como:

$ csh
aardvark:~% set zz="nam_218_20140126_1800_001.grb"
aardvark:~% set y='echo $zz|cut -c9-12'
aardvark:~% echo $y
2014
aardvark:~% set m='echo $zz| cut -c13-14'
aardvark:~% echo $m
01
aardvark:~% set d='echo $zz| cut -c15-16'
aardvark:~% echo $d
26
aardvark:~% set H='echo $zz | cut -c18-19'
aardvark:~% echo $H
18
aardvark:~% set M='echo $zz | cut -c20-21'
aardvark:~% echo $M
00
aardvark:~% echo "$y-$m-${d}_${H}:${M}:00"
2014-01-26_18:00:00  

Não é uma resposta csh -específica.

    
por waltinator 29.01.2014 / 19:57