
Así que busqué varios archivos de datos grandes que corresponden a la temperatura y el vapor en el formato tmp_information_about_dataset.file y vap_information_about_dataset.file.
Entonces, para cada archivo tmp_... hay un archivo vap_... correspondiente. Usaré ambos conjuntos de datos para realizar algunos cálculos y luego generaré un archivo de salida correspondiente en el formato out_information_about_dataset.file
Para que quede claro, cada par de archivos tmp/vap, después de la información sobre los conjuntos 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 out
sean idénticos a la información sobre los conjuntos de datos de los que provienen. 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
¿Existe alguna forma de tomar todos los archivos del diccionario, realizar el cálculo en pares coincidentes y nombrar el archivo de salida con un nombre de archivo idéntico después de los primeros 3 caracteres?
Estaba pensando en algoMe gusta esta respuesta aquí funcionaríapero el hecho de que necesito usar dos archivos con el nombre correspondiente, a diferencia de cualquier archivo en el diccionario, y también quiero archivos de salida separados, me está desconcertando un poco.
Respuesta1
Primero, repita todos tmp_
los archivos:
for file in tmp_*; do
luego, para cada tmp_
archivo, puede obtener el vap_
archivo 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