如何输出(使用write语句)撇号“'”?

时间:2015-05-19 02:09:03

标签: linux fortran system fortran90

我想在Fortran 90中使用系统命令来执行以下命令:

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

这里我的filename1和filename2是Fortran 90程序中的变量。 但问题是任何字符都可以分配给一个包含在撇号之间的变量,而我的变量也应该由撇号组成。我不知道如何在Fortran 90中输入它。

2 个答案:

答案 0 :(得分:6)

在字符串

中连续使用两个撇号
command =  'awk ''{print "C"NR,$1,$2,$3}'' filename1 > filename2'

此外,因为我没有注意到filename1filename2是变量,所以必须将它们附加为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)

这就是我甚至没有告诉你的原因。哦。