2016-01-07 33 views
0

在openvms系統上運行GNU Awk 3.1.1。任何人都知道我可以如何輸出雙引號字符。沒有運氣例如在OpenVMS上輸出awk中的雙引號

$ 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

或者你可以使用

$ 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引號字符徒勞無功字符串「\」。

在您的解決方案DCL通過

BEGIN {print qte"hello world"qte} 

爲節目文字呆子,打印QTE的內容,字符串'你好世界」和QTE再次內容。

+0

好的地方,如果/當我終於停止使用openvms時,有些事情我會錯過,有些不是那麼多! – user2699504

0

得到它!

$ gawk -v qte="""" "BEGIN {print qte""hello world""qte}" NL: 
"hello world"