我想搜索
$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!