我正在尝试编写一个 CSH 脚本,该脚本将查看文件名的组成部分以生成日期/时间。问题是,我不知道如何提取文件名的一部分来使用它。以下是示例文件名:
nam_218_20140126_1800_001.grb
20140126
是文件名的日期部分,1800
是时间。我需要提取它并将其转换2014-01-26_18:00:00
为用于环境变量。有什么提示吗?
谢谢
答案1
% 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
答案2
使用echo
和cut
. Read 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
特定的答案。