Я хочу просмотреть 40 файлов netCDF. Есть 20 файлов с переменной PRECC
и 20 файлов с переменной PRECL("modelmember001.PRECC.192001-200512.nc", "modelmember002.PRECC.192001-200512.nc", ... ,"modelmember020.PRECC.192001-200512.nc"
и для PRECL
соответственно).
Мне нужно выполнить несколько команд cdo (оператор климатических данных) с циклом (добавить файлы PRECC и PRECL и изменить временные ряды с 1920-2005 на 1955-2005).
Это код, который я использую:
datadir="path_to_mydatat"
workdir="path_to_folder_for_newfiles"
members="{001 .. 020}"
for model in $members
do
echo 'working with model' ${model}
echo cdo -s add ${datadir}/modelmember${members}.PRECC.192001-200512.nc${datadir}/modelmember${members}.PRECL.192001-200512.nc ${workdir}/modelmember${members}PRECT.192001-200512.nc
# echo cdo -s selyear,1955/2005 ${workdir}/modelmember${members}.PRECT.192001-200512.nc ${workdir}/modelmember${members}.PRECT.195501-200512.nc
В итоге мне нужно 20 файлов с именем
"modelmember001.PRECT.195501-200512.nc", "modelmember002.PRECT.195501-200512.nc", ... , "modelmember020.PRECT.195501-200512.nc"
Вот что я получаю, когда запускаю свой код (намеренно с «эхом» перед строкой cdo):
$./cdo_add.sh
{001 .. 020}
working with model {001
cdo -s add /path_to_mydatat/modelmember{001 .. 020}.PRECC.192001-200512.nc /path_to_mydatat/modelmember{001 .. 020}.PRECL.192001-200512.nc /path_to_folder_for_newfiles/modelmember{001 .. 020}.PRECT.192001-200512.nc
working with model ..
cdo -s add /path_to_mydatat/modelmember{001 .. 020}.PRECC.192001-200512.nc /path_to_mydatat/modelmember{001 .. 020}.PRECL.192001-200512.nc /path_to_folder_for_newfiles/modelmember{001 .. 020}.PRECT.192001-200512.nc
working with model 020}
cdo -s add /path_to_mydatat/modelmember{001 .. 020}.PRECC.192001-200512.nc /path_to_mydatat/modelmember{001 .. 020}.PRECL.192001-200512.nc /path_to_folder_for_newfiles/modelmember{001 .. 020}.PRECT.192001-200512.nc
Мой код, похоже, не перебирает членов. Что-то не так с тем, как я использую заполнитель «members», но я не могу понять, как это исправить. Есть ли у кого-нибудь предложения? Ваше здоровье!
for model in {001..020}
- можно использовать переменную. Избавьтесь отmembers="{001 .. 020}"
(это приводит к зацикливанию на001
, затем на..
, затем на020
) - person David C. Rankin   schedule 06.12.2017