Извлечь дату из имени файла для скрипта CSH?

Я пытаюсь написать скрипт CSH, который будет проверять компоненты имени файла для генерации даты / времени. Проблема в том, что я понятия не имею, как извлечь часть имени файла, чтобы использовать его. Вот пример имени файла:

nam_218_20140126_1800_001.grb  

20140126 - это часть даты в имени файла, а 1800 - время. Мне нужно извлечь его и преобразовать в 2014-01-26_18:00:00 для использования в переменной окружения. Есть намеки?

Спасибо

2
задан 3 February 2014 в 16:14

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}).*/\1-\2-\3_\4:\5:00/'`
% echo $datetime
2014-01-26_18:00:00
0
ответ дан 3 February 2014 в 16:14

Используйте echo и cut. Прочитайте man cut и сделайте что-то вроде:

$ 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  

Не ответ по csh.

0
ответ дан 3 February 2014 в 16:14

Другие вопросы по тегам:

Похожие вопросы: