ver varios todos para otro mover los ejemplos directorio crear copiar contenido consola comandos comando carpeta basicos archivos archivo shell fortran

shell - varios - Listar el contenido de un directorio especificado por índices de bucle



mover varios archivos en linux (2)

¡Bien gracias a la sugerencia de Vladimir aquí qué hice para resolver mi problema!

program test_ec implicit none integer :: mi,di,iiii,fff character(len=1024) :: filename character(len=1024) :: format_string logical exist mi=1 CALL chdir(''/media/Hello/ncfiles/GFS'' ) !do di=1,10 do iiii=0,18,6 do fff=0,18,6 format_string = "(A17,i2.2,i2.2,A1,i4.4,A1,i3.3,A8)" write (filename,format_string) "sub_gfsanl_4_2011",mi,di,"_",iiii,"_",fff,".grb2.nc" inquire(file=trim(filename), exist=exist) if (exist) then write(*,*) ''file exists i can do do whatever i want with this file'' else write(*,*) ''I did not find that file.'' end if enddo enddo enddo end program test_ec

Estoy trabajando con la predicción meteorológica numérica nombrada de la siguiente manera:

sub_gfsanl_4_2011MMDD-IIII-FFFF.grb2

-MM significa mes del 01 al 12

-DD ​​significa días del 01 al 31

-IIII significa tiempo de inicialización, el primer y el segundo dígito son por horas, el tercero y el último son por minutos

-FFFF significa hora de pronóstico, el primer y segundo dígito son por horas, el tercero y el último son por minutos

En mi directorio tengo varios archivos para un determinado día de un mes determinado. Un día tiene 4 datos, uno cada seis horas IIII = 0000, 0600,1200,1800.

Lo que trato de hacer es listar todos los archivos de un día determinado, aquí el código f90 que escribí:

program test_ec implicit none !==variable declaration== integer :: mi,di,dil,mil character*3 :: temp !==Program instructions== mil=1 write(temp,''(i2.2)'') mil read(temp,''(i2.2)'') mi !convert the month into a two digit value mi=01 ! change to directory where the data are stored CALL chdir(''/media/Hello/ncfiles/GFS'' ) do dil=1,31 !loop over days write(temp,''(i2.2)'') dil read(temp,''(i2.2)'') di ! converting day number into a two digit number, store this value into di. ex dil=9 then di=09 CALL execute_command_line( ''ls sub_gfsanl_4_2011${mi}${di}*.nc > yes.txt'' ) !list all files with the correct month and days and store it to yes.txt end do end program test_ec

Por alguna razón, a execute_command_line no parece gustarle la $ for variable ...