Fortran awk:cmd。第1行:致命:无法打开文件'filename_i';用于读取(无此类文件或目录)

Fortran awk:cmd。第1行:致命:无法打开文件'filename_i';用于读取(无此类文件或目录),fortran,fortran90,Fortran,Fortran90,我正在尝试从文件中读取数据,如下所示: test_50rg0_shear0.01_fric0.5.dat test_50rg1_shear0.01_fric0.5.dat test_50rg2_shear0.01_fric0.5.dat 在Fortran代码中,然后使用第二列的数据。我的代码是 do i=0,2 write(filename_i,'(a,i1,a)')'../test_50rg',i,'_shear0.01_fric0.5.dat write(filename_o,'

我正在尝试从文件中读取数据,如下所示:

test_50rg0_shear0.01_fric0.5.dat
test_50rg1_shear0.01_fric0.5.dat
test_50rg2_shear0.01_fric0.5.dat 
在Fortran代码中,然后使用第二列的数据。我的代码是

do i=0,2
  write(filename_i,'(a,i1,a)')'../test_50rg',i,'_shear0.01_fric0.5.dat
  write(filename_o,'(a,i1,a)')'../dist_50rg',i,'_shear0.01_fric0.5.dat'
  call system("awk '{print $2}' filename_i > filename_o")
  .......
end do
为此,我得到一个错误:

awk:cmd。第1行:致命:无法打开文件“filename_i”进行读取(没有这样的文件或目录)


请告诉我为什么会出现这样的错误以及执行此操作的任何其他方法。

当您需要传递变量时,您正在将文本字符串“filename\u i”传递给awk,如Klitos所述

你应使用:

call system("awk '{print $2' "//trim(filename_i)//" > "//trim(filename_o))

其中,
/
命令连接字符串。

filename\u i是Fortran变量的名称,而不是文件名。谢谢。它正在工作。