同时循环遍历 .nc 和 .txt 文件

同时循环遍历 .nc 和 .txt 文件

我需要同时循环当前目录中的所有 .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 对应项是否存在。

相关内容