2016-04-01 3 views
-1

В моей установке Drupal я искал все экземпляры переменной $head и grep возвращается (в подавляющем большинстве!) И $head и $header.Как я могу найти точную строку с помощью Grep?

Какие параметры или флаги можно передать в команду, чтобы grep ТОЛЬКО возвращал $head, а не $header?

+0

Работает ли grep "$ head"? –

ответ

4

Вы можете найти точное слово, используя опцию -w. Использование

grep -w string 
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.) 
+1

Это все равно будет соответствовать '$ header'. –

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 
Смежные вопросы