我想在Fortran 90中使用系统命令来执行以下命令:
command = awk '{print "C"NR,$1,$2,$3}' filename1 > filename2
call system(trim(command))
这里我的filename1和filename2是Fortran 90程序中的变量。 但问题是任何字符都可以分配给一个包含在撇号之间的变量,而我的变量也应该由撇号组成。我不知道如何在Fortran 90中输入它。
答案 0 :(得分:6)
在字符串
中连续使用两个撇号command = 'awk ''{print "C"NR,$1,$2,$3}'' filename1 > filename2'
此外,因为我没有注意到filename1
和filename2
是变量,所以必须将它们附加为chw21显示:
// trim(filename1)//' > '//trim(filename2)
答案 1 :(得分: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)
你根本不应该使用Hollerith格式指令:
write(command, 100) trim(f1), trim(f2)
100 FORMAT(29Hawk '{print "C"NR,$1,$2,$3}' , A, " > ", A)
这就是我甚至没有告诉你的原因。哦。