如何使用Grep搜索确切的字符串?

时间:2016-04-01 19:39:19

标签: regex grep

在我的Drupal安装中,我正在搜索变量$head的所有实例,而grep正在返回(绝大多数!)$head$header

我可以将哪些参数或标志传递给命令,以便grep ONLY仅返回$head,而不是$header

3 个答案:

答案 0 :(得分:4)

您可以使用-w选项搜索确切的单词。 使用

grep -w string

答案 1 :(得分:3)

正如其他人所提到的,请-w使用grep。另请注意,您需要使用单引号;否则,值$head将通过bash扩展为此变量的值。

grep -w '$head' file
#       ^     ^
#     single quotes!

您还可以使用sed

sed -n '/\$head\>/p' file

这里重要的部分是使用\>表示单词操作符的结尾。

$ cat a
hello $head is header blabla yea
hello head is $header blabla yea
$ sed -n '/\$head\>/p' a
hello $head is header blabla yea

答案 2 :(得分:1)

您可以使用精细手册中的fgrep(或grep -F):

-F
--fixed-strings
Interpret the pattern as a list of fixed strings 
(instead of regular expressions), separated by newlines, 
any of which is to be matched. (-F is specified by POSIX.)