2015-05-19 29 views
3

我想在Fortran 90的使用系統命令執行如下因素命令:如何輸出(使用寫入語句)撇號「'」?

command = awk '{print "C"NR,$1,$2,$3}' filename1 > filename2 
call system(trim(command)) 

我這裏文件名1和文件名2是在Fortran 90的程序變量。 但問題是,任何字符都可以分配給一個變量,這些變量包含在單引號之間,我的變量也應該由撇號組成。我不知道如何將它使用Fortran鍵入90

回答

4

你可以嘗試使用參數單引號,像這樣:

character, parameter :: sq = "'" 

然後你可以連鎖的東西放在一起這樣的:

command = 'awk '//sq//'{print "C"NR,$1,$2,$3}'//sq//' '// & 
      trim(filename1)//' > '//trim(filename2) 

或者,您可以單,雙引號中的字符串之間切換:

command = "awk '" // '{print "C"NR,$1,$2,$3}' // "' " // & 
      trim(filename1) // ' > ' // trim(filename2) 

你不應該在做些什麼ll正在使用Hollerith格式指令:

 write(command, 100) trim(f1), trim(f2) 
100 FORMAT(29Hawk '{print "C"NR,$1,$2,$3}' , A, " > ", A) 

這就是爲什麼我甚至沒有告訴你。哦。

+1

嚴重的是,不要使用hollerith。它從Fortran 95中刪除,因爲它產生的問題比解決問題的更多。 – chw21

+0

感謝您的回答。 –

6

只需要使用兩個撇一排字符串中

command = 'awk ''{print "C"NR,$1,$2,$3}'' filename1 > filename2' 

另外,由於我沒有注意到filename1filename2是變量,如chw21顯示了必須添加它們:

// trim(filename1)//' > '//trim(filename2) 
+0

這就是爲什麼我喜歡這個網站,我每天都在學習新東西。 – chw21

+0

非常感謝。 –

+2

@MubeenaShaikh你不必感謝,但你可以考慮接受答案。 –