rcps
scenarios
, но использовали scenario
Вот версия вашего сценария, которая исправляет эти проблемы и делает несколько других улучшений:
sed
один раз, а не несколько раз плюс tr
$fname
) для хранения построенного имени файла (${station}_${gcm}_${scenario}
) вместо того, чтобы перестраивать его каждый раз, когда вы его используете, что гораздо сложнее для чтения и чревато опечатками. #!/bin/bash
in_dir='/home/stevens/SUMARIO/regional_model/data/basin'
stations=(almourol alton cuntan eldeim farakka koulikoro lobith louth
olivenca stolb tangnaihai)
gcms=(gfdl-esm2m hadgem2-es ipsl-cm5a-lr miroc-esm-chem noresm1-m)
scenario='rcp8p5'
rcps=(a b c)
for station in "${stations[@]}" ; do
cd "${in_dir}/${station}"
for gcm in "${gcms[@]}"; do
for rcp in "${rcps[@]}" ; do
fname="${station}_${gcm}_${scenario}"
echo "replace datum: $fname"
sed -e 's/"datum"/"YEAR-MONTH-DAY"/g;
s/ 12:00:00//g;
s/-/;/g' "$fname" > "${fname}.csv"
done
done
done
Если вы хотите заменить строку "datum"
на реальную дату, вам придется сделать что-то вроде:
YMD=$(date+%Y-%m-%d)
вместе с другими переменными и массивамиsed
следующим образом: sed -e 's/"datum"/"'"${YMD}"'"/g;
s/ 12:00:00//g;
s/-/;/g' "$fname" > "${fname}.csv"
BTW, если вы действительно хотели иметь несколько сценариев, вам придется определить scenarios
как еще один массив и добавить еще один цикл for scenario in "${scenarios[@]}" ; do . .... done