Linux grep String Search



我想搜索

$GLOBALS["x61156x75156x61"]使用 grep,但"/不能完美运行。

grep -rl "$GLOBALS["x61156x75156x61"]" <filename>

$GLOBALS["x61156x75156x61"]是病毒恶意软件启动代码,则许多文件都会受到影响。我有一个脚本通过我想要搜索受影响的文件并删除顶行

由于您正在寻找完全匹配并且不希望表达式被grep解释,因此您必须使用-F和单引号来避免变量被扩展:

grep -Frl '$GLOBALS["x61156x75156x61"]' <filename>
      ^   ^                                ^

man grep

-F, --固定字符串

将 PATTERN 解释为固定字符串的列表,分隔为 换行符,其中任何一条都要匹配。 (-F 由 POSIX 指定。


请参阅-F与单引号一起使用的另一个示例:

我们创建一个这样的文件:

$ cat a
hello
${myarray[0]}
bye

和一个数组:

$ myarray=('hello' 'how' 'are' 'you')

让我们使用单引号并查找值:

$ grep '${myarray[0]}' a
$ 

让我们使用带有双引号的固定字符串 ->它被解释!

$ grep -F "${myarray[0]}" a
hello

让我们使用-F和单引号:

$ grep -F '${myarray[0]}' a
${myarray[0]}                    #this works!

最新更新