비슷한 이름을 가진 여러 쌍의 파일에 대해 동일한 작업을 실행합니다.

비슷한 이름을 가진 여러 쌍의 파일에 대해 동일한 작업을 실행합니다.

그래서 tmp_information_about_dataset.file 및 vap_information_about_dataset.file 형식으로 온도와 증기에 해당하는 여러 개의 대용량 데이터 파일을 만들었습니다.

따라서 모든 tmp_... 파일에는 해당 vap_... 파일이 있습니다. 두 데이터세트를 모두 사용하여 일부 계산을 수행한 다음 out_information_about_dataset.file 형식으로 해당 출력 파일을 생성하겠습니다.

명확히 하자면, 데이터 세트에 대한 정보(예: tmp 또는 vap 뒤의 모든 문자) 뒤의 각 tmp/vap 파일 쌍은 동일하므로 그 뒤의 문자도 해당 파일이 포함된 out데이터 세트에 대한 정보와 동일하기를 원합니다. 생성되었습니다. 예를 들어

 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

사전에 있는 모든 파일을 가져와 일치하는 쌍에 대한 계산을 수행하고 처음 3자 뒤에 동일한 파일 이름을 사용하여 출력 파일의 이름을 지정할 수 있는 방법이 있습니까?

뭔가 생각하고 있었어여기 이 답변이 효과가 있을 것 같아요하지만 사전에 있는 파일과 달리 별도의 출력 파일을 원하고 해당 이름을 가진 두 개의 파일을 사용해야 한다는 사실이 나를 약간 당황하게 합니다.

답변1

먼저 모든 tmp_파일을 반복합니다.

for file in tmp_*; do

그런 다음 각 파일에 대해 - 먼저 tmp_해당 vap_파일을 가져올 수 있으며 tmp 접두사를 제거한 다음(변수 자체는 수정되지 않음) 결과가 와 연결됩니다 .vap${file#tmp}${file#tmp}vap

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

관련 정보