¿Extraer una fecha de un nombre de archivo para el script CSH?

¿Extraer una fecha de un nombre de archivo para el script CSH?

Estoy intentando escribir un script CSH que examinará los componentes del nombre del archivo para generar una fecha/hora. El problema es que no tengo idea de cómo extraer parte de un nombre de archivo para usarlo. Aquí hay un nombre de archivo de muestra:

nam_218_20140126_1800_001.grb  

20140126es la parte de la fecha del nombre del archivo y 1800es la hora. Necesito extraerlo y convertirlo 2014-01-26_18:00:00para usarlo en una variable de entorno. ¿Alguna pista?

Gracias

Respuesta1

% 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}).*/\1-\2-\3_\4:\5:00/'`
% echo $datetime
2014-01-26_18:00:00

Respuesta2

Uso echoy cut. Lea man cuty haga 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  

No es una cshrespuesta específica.

información relacionada