应用场景:文件太多,批量重命名的方式
Window(采用matlab脚本.m)
path = 'F:\ecmwf_forcing\Solar\'; # 待修改文件夹,修改之前为 ECMWF_c2020_Solr.2013-01;
files = dir([path '*.nc']); # 修改之后为ECMWF_c2020_Solar.2013-01
n = length(files);
for ifile = 1:n
oldname = files(ifile).name;
newname_ini = oldname(1:end-15)
newname_ter = oldname(end-10:end)
newname = [newname_ini, 'Solar', newname_ter]
eval(['!rename' 32 oldname 32 newname]);
end
注意:需要将matlab脚本放在待修改的文件夹下面,否则会提示“系统找不到文件”
Linux(采用shell脚本.sh)
#!/bin/bash
#
# to change file name
#
DIR_IN=/datahuge/cesm_inputdata/ecmwf_forcing/Solar
n=2001
while [ $n -le 2010 ]
do
echo $n
m=1
while [ $m -le 12 ]
do
echo $m
if [ $m -le 9 ] ; then
YYMM=${n}-0${m}
else
YYMM=${n}-${m}
fi
FILENAM_IN=${DIR_IN}/ECMWF_c2020_Slor.${YYMM}.nc
FILENAM_OUT=${DIR_IN}/ECMWF_c2020_Solar.${YYMM}.nc
mv ${FILENAM_IN} ${FILENAM_OUT}
(( m++ ))
done
(( n++ ))
done
注意:
1 记得修改chmod 755 shell.sh 为可执行脚本;
2 ./shell.sh 运行