for bash with two files,迭代文件名

时间:2016-11-02 09:44:56

标签: bash for-loop iteration

我正在尝试在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;

自动化不会输出正确的文件。我试图通过类似的例子阅读,但我没有找到一个可以帮助我进一步的类似例子。对我所做错的任何意见都将不胜感激

由于

1 个答案:

答案 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 ...