AWK 在 Winawk / Gnuwin 中转义双引号

AWK Escape double quotes in Winawk / Gnuwin

我不知道如何在 AWK、Gnuwin 中搜索单词。我在 AWK 中有以下内容:

..."{ 如果 ($2=="""""Word"""") 打印 }"...

Word在我的文件里是用双引号写的,所以我得用双引号搜索。

我试过: ..."{ 如果 ($2=="""\"Word\"""") 打印 }"... 以及许多其他方法,但都行不通。

有人知道这将如何运作吗?

提前致谢

在 Windows shell 中,如果您在命令行中输入脚本,则必须使用反斜杠转义脚本中的双引号。而且,那些双引号,如果它们是某个字符串的一部分,由于 AWK 的规则,必须用反斜杠转义,并且由于该反斜杠在字符串内,它也必须用反斜杠转义:

gawk " == \"\\"Word\\"\" {print }"

这将打印第二个标记为:"Word".

的任何行

用一些空格分解它:

O   B   LQ  WORD  B   LQ  C
\"  \  \"  Word  \  \"  \"

O == Opening quote of the string to search for.
B == A backslash that will escape the following character
LQ == A literal double quote (because of the preceding backslash)
WORD == the literal text 'Word'
C == Closing quote of the string to search for.

如果测试不在命令行上,它看起来会好一点:

 == "\"Word\""