在 OpenVMS 上的 awk 中输出双引号
Outputting a double quote in awk on OpenVMS
运行 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
但没有前导或尾随 " 出现
知道了!
$ gawk -v qte="""" "BEGIN {print qte""hello world""qte}" NL:
"hello world"
或者您可以使用
$ 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 的内容。
运行 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
但没有前导或尾随 " 出现
知道了!
$ gawk -v qte="""" "BEGIN {print qte""hello world""qte}" NL:
"hello world"
或者您可以使用
$ 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 的内容。