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\""
我不知道如何在 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\""