我需要同时循环当前目录中的所有 .nc 和 .txt 文件。对于每个循环,文件 .nc 和 .txt 具有完全相同的名称,只是结尾(.nc 和 .txt)发生了变化。
到目前为止我有:
for f in *.nc *.txt
do
echo $f
cdo setgrid,${f%.txt}.txt ${f%.nc}.nc ${f%.nc}_WITH_BOUNDS.nc
cdo remapcon,/mnt/my_dir/static.txt ${f%.nc}_WITH_BOUNDS.nc ${f%.nc}_WITH_BOUNDS_latlon.nc
done
答案1
尝试仅循环遍历.nc
文件,并.txt
从中创建文件名:
for FNC in *.nc
do FN=${FNC%.nc}
echo $FNC, $FN
cdo setgrid,"$FN".txt "$FN".nc "$FN"_WITH_BOUNDS.nc
cdo remapcon,/mnt/my_dir/static.txt "$FN"_WITH_BOUNDS.nc "$FN"_WITH_BOUNDS_latlon.nc
done
您可能需要在运行cdo
命令之前检查 .txt 对应项是否存在。