我正在尝试在bash for循环中处理多个文件,并且每次运行需要拉入两个不同的文件。 我输入数据的一个例子是:
temperature1985.nc
maskfile1985.nc
temperature1986.nc
maskfile1986.nc
...
我将用于单次运行的命令(假设工作文件夹仅包含所需文件)将是:
cdo mul infile1 infile2 outfile
我试过这个以自动化运行:
for ((i=1985; i <= 30; i++));
do printf "cdo mul temperature%04d.nc maskfile%04.nc ${i%.nc}_mul.nc” $i;
done,
...其中cdo mul是外部脚本,infile1 = temperature1985.nc; infile2 = maskfile1985.nc,outfile名称的名称应该等于例如带有附加标记的infile1,例如&#34; _mul&#34;
自动化不会输出正确的文件。我试图通过类似的例子阅读,但我没有找到一个可以帮助我进一步的类似例子。对我所做错的任何意见都将不胜感激
由于
答案 0 :(得分:0)
在循环中读取2行:
produce_your_input_data | paste - - | while read -r firstfile secondfile; do
cdo mul "$firstfile" "$secondfile" "${firstfile%.nc}_mul.nc"
done
或
produce_your_input_data | while read -r firstfile && read -r secondfile; do ...