在openvms系统上运行GNU Awk 3.1.1。任何人都知道如何输出双引号字符。尝试各种方式,没有运气,例如
$ gawk "BEGIN {print "Hello, World"}" NL:
/chas$dka0/psx$root/bin/gawk: cmd. line:2: (END OF FILE)
/chas$dka0/psx$root/bin/gawk: cmd. line:2: parse error
$ gawk "BEGIN {print "\"Hello, World\""}" NL:
/chas$dka0/psx$root/bin/gawk: cmd. line:1: BEGIN {print \Hello, World\"}
/chas$dka0/psx$root/bin/gawk: cmd. line:1: ^ backslash not last character on line
我最近的是
$ gawk "BEGIN {print ""Hello, World""}" NL:
Hello, World
但是没有前导或尾随“出现
答案 0 :(得分:0)
知道了!
$ gawk -v qte="""" "BEGIN {print qte""hello world""qte}" NL:
"hello world"
答案 1 :(得分:0)
或者您可以使用
$ gawk "BEGIN {print ""\""Hello, World\""""}" nl:
您可能知道,要让DCL在字符串中包含引号字符,您必须将其加倍。对于DCL,gawk程序文本是带引号的字符串。在程序文本中,您需要另一个字符串,一个gawk引用的字符串。因此,DCL将所有加倍的引号字符替换为单个字符。换句话说,DCL通过
BEGIN {print "\"Hello, World\""}
作为gawk的程序文本。这可以通过简单的
进行验证$ write sys$output "BEGIN {print ""\""Hello, World\""""}"
在一个gawk字符串中,你必须用'\'转义gawk引号字符。
在您的解决方案中,DCL通过
BEGIN {print qte"hello world"qte}
作为gawk的程序文本,打印qte的内容,字符串`hello world',再次打印qte的内容。