Ejecuta la misma operación en varios pares de files con nombres similares

Entonces, varios files de datos grandes que corresponden a temperatura y vapor en la forma tmp_information_about_dataset.file y vap_information_about_dataset.file

Entonces, para cada file tmp _… hay un file vap _… correspondiente, usaré ambos datasets para realizar algunos cálculos y luego generaré un file de salida correspondiente en el formatting out_information_about_dataset.file

Para que quede claro, cada par de files tmp / vap, después de la información sobre los sets de datos (es decir, cualquier carácter después de tmp o vap) son idénticos, por lo que también querré que los caracteres posteriores sean idénticos a la información sobre los sets de datos fue generado p.ej

  tmp_123ABC456_model1_2010.nc vap_123ABC456_model1_2010.nc out_123ABC456_model1_2010.nc tmp_123CDF_model2_2010.nc vap_123CDF_model2_2010.nc out_123CDF_model2_2010.nc 

¿Hay alguna manera de poder tomar todos los files en el dictionary, realizar el cálculo en los pares coincidentes y nombrar el file de salida con un nombre de file idéntico después de los primeros 3 caracteres?

Estaba pensando que algo como esta respuesta aquí funcionaría, pero el hecho de que necesito usar dos files con el nombre correspondiente, a diferencia de cualquier file en el dictionary, así como querer files de salida separados, me está tirando un poco.

Primero, itere sobre todos los files tmp_ :

 for file in tmp_*; do 

luego, para cada file tmp_ , puede get el file vap_ correspondiente con vap${file#tmp} – primero, ${file#tmp} elimina el prefijo tmp (la variable en sí no se modifica), luego el resultado se concatena con vap .

 for file in tmp_*; do ./process_stuff "${file}" "vap${file#tmp}" > "out${file#tmp}"; done