2015-12-24 42 views
-1

我想從文件中讀取數據:在Fortran代碼awk:cmd。行:1:致命的:無法打開文件'filename_i」用於讀取(沒有這樣的文件或目錄)

test_50rg0_shear0.01_fric0.5.dat 
test_50rg1_shear0.01_fric0.5.dat 
test_50rg2_shear0.01_fric0.5.dat 

,然後使用數據第二列。我的代碼是

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. line:1: fatal: cannot open file `filename_i' for reading (No such file or directory)

請告訴我爲什麼會有這樣的錯誤和任何其他方法來完成這項工作。

+1

filename_i是Fortran變量的名稱,而不是文件的名稱。 –

回答

1

當您需要傳遞變量時,您正在將文字字符串「filename_i」傳遞給awk,如Klitos所述。

你應該使用:

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

其中//命令符連接字符串。

+0

謝謝。這是工作。 –

相關問題