我无法弄清楚,如何在AWK,Gnuwin中搜索一个单词。我在AWK中有以下内容:
...“{if($ 2 ==”“”“Word”“”“)print}”...
Word在我的文件中用双引号编写,所以我必须用双引号搜索它。
我试过了: ......“{if($ 2 ==”“”\“Word \”“”“)打印}”...... 以及许多其他不起作用的方法。
有谁知道这将如何运作?
提前谢谢
答案 0 :(得分:0)
在Windows shell中,如果要在命令行中输入脚本,则必须使用反斜杠转义脚本内的双引号。并且,那些双引号(如果它们是某些字符串的一部分)必须通过AWK规则的反斜杠进行转义,并且因为反斜杠在字符串内部,所以它也必须通过反斜杠进行转义:
gawk "$2 == \"\\\"Word\\\"\" {print $2}"
这将打印第二个标记为的任何行:“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.
如果测试不在命令行上,它会看起来好一点:
$2 == "\"Word\""