如图,我想将图中目录下的.nc文件进行处理后输出到另外一张图的目录下面,需要另外目录下创建和原目录下相同结构的子目录,也就是/1981/1981030100等。
自己写好了创建目录的代码,但是不知道如何批量找到源目录下的输入文件再进行操作
#!/bin/bash
year=1981
for((year=1981;year<=2022;year++))
do
echo 'year:' $year
#go into the directoty
mkdir $year
cd $year
for calendar in seq 1981030100 +100 1981030500
do
for((i=0;i<=18;i = expr i+6
))
do
echo expr $calendar + $i
mkdir expr $calendar + $i
done
done
cd ../
done
核心命令是:ncks -v T,U,V in.nc out.nc
in.nc是输入文件,out.nc是输出文件
#!/bin/bash
#d_path="/data02/data_lin/IAP-DCPv3/Hindcast/MAR_hindcast/1981/1981030100"
#t_path="/data04/test0414"
for i in find /data04/test0414/1981030100 -name '*.nc'
do
# nc_path="${d_path}/${i}"
# command="ncks -v TREFHT,PRECT,PRECC,PRECL -d lat,-12.,30. -d lon,90.,140. ${i} test_${i}"
#echo ${i}
done
这个代码一直调整也不能实现目的,有时候出现的结果是执行成功但是没有输出。
有一个想法是先创建好像这样对应的目录,然后切换到目录下,再去找需要的输入文件,然后在执行ncks命令,最后再返回上一级,就这样循环重复,但是不知道怎么把输入输出目录对应起来
可以批量操作不同目录下同类型的文件,不限于脚本,能实现就成。
你的报错都报什么错