Linux grep 字符串搜索
Linux grep String Search
我要搜索
$GLOBALS["\x616\x756\x61"]
使用 grep 但 "
和 /
无法正常工作。
grep -rl "$GLOBALS["\x616\x756\x61"]" <filename>
$GLOBALS["\x616\x756\x61"]
是病毒恶意软件起始代码,大量文件受到影响。我有一个脚本,我想搜索受影响的文件并删除第一行
由于您正在寻找完全匹配并且您不希望表达式被 grep
解释,因此您必须使用 -F
和单引号来避免变量被扩展:
grep -Frl '$GLOBALS["\x616\x756\x61"]' <filename>
^ ^ ^
来自man grep
:
-F, --fixed-strings
Interpret PATTERN as a list of fixed strings, separated by
newlines, any of which is to be matched. (-F is specified by 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!
我要搜索
$GLOBALS["\x616\x756\x61"]
使用 grep 但 "
和 /
无法正常工作。
grep -rl "$GLOBALS["\x616\x756\x61"]" <filename>
$GLOBALS["\x616\x756\x61"]
是病毒恶意软件起始代码,大量文件受到影响。我有一个脚本,我想搜索受影响的文件并删除第一行
由于您正在寻找完全匹配并且您不希望表达式被 grep
解释,因此您必须使用 -F
和单引号来避免变量被扩展:
grep -Frl '$GLOBALS["\x616\x756\x61"]' <filename>
^ ^ ^
来自man grep
:
-F, --fixed-strings
Interpret PATTERN as a list of fixed strings, separated by newlines, any of which is to be matched. (-F is specified by 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!