Как найти все файлы, содержащие определенный текст (который включает обратную косую черту)?

97
7

Я думал, что нашел прекрасный ответ. Как найти все файлы, содержащие определенный текст в Linux? , поэтому я попробовал:

[Michael@devserver ~]$ grep -rnw '/var/www/concrete5.7.5.9/' -e "Concrete\Core\Block\BlockController"
[Michael@devserver ~]$

Никто не показывает, но я знаю, что должен был быть матч.

[Michael@devserver ~]$ grep -rnw '/var/www/concrete5.7.5.9/concrete/blocks/html' -e "BlockController"
/var/www/concrete5.7.5.9/concrete/blocks/html/controller.php:5:use \Concrete\Core\Block\BlockController;
/var/www/concrete5.7.5.9/concrete/blocks/html/controller.php:7:class Controller extends BlockController
[Michael@devserver ~]$

Я также попытался избежать обратной косой черты безрезультатно.

[Michael@devserver ~]$ grep -rnw '/var/www/concrete5.7.5.9/' -e "Concrete\\Core\\Block\\BlockController"
[Michael@devserver ~]$

Также пробовали одинарные кавычки безрезультатно.

[Michael@devserver ~]$ grep -rnw '/var/www/concrete5.7.5.9/' -e 'Concrete\Core\Block\BlockController'
[Michael@devserver ~]$

Как найти все файлы, содержащие конкретный текст, который включает обратную косую черту в Linux?

спросил(а) 2016-10-05T18:46:00+03:00 3 года, 11 месяцев назад
1
Решение
57

Используйте одинарные кавычки и сбрасывайте обратную косую черту.

grep -rnw '/var/www/concrete5.7.5.9/' -e'Concrete\\Core\\Block\\BlockController'

ответил(а) 2016-10-05T19:08:00+03:00 3 года, 11 месяцев назад
41

У Grep есть опция -F чтобы интерпретировать шаблон буквально, а не как регулярное выражение. Например:

$ cat infile
use \Concrete\Core\Block\BlockController;
class Controller extends BlockController
$ grep 'Concrete\Core\Block\BlockController' infile # No match!
$ grep -F 'Concrete\Core\Block\BlockController' infile # Matches!
use \Concrete\Core\Block\BlockController;

ответил(а) 2016-10-05T19:22:00+03:00 3 года, 11 месяцев назад
40

Используйте одинарные кавычки.

grep -rnw '/var/www/concrete5.7.5.9/' -e 'Concrete\Core\Block\BlockController'

ответил(а) 2016-10-05T19:00:00+03:00 3 года, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема