Как объяснить это поведение grep с пробелом? - PullRequest
0 голосов
/ 15 мая 2018

Я довольно новичок в мире Linux, и я хотел использовать grep, чтобы найти вхождения print, за которым следует пробел. Он появляется в файле /path/script.py - вы должны доверять мне здесь. Я был удивлен, увидев, что

grep --include=\script.py -rnwlF '/path/' -e 'print'

правильно выводит имя файла, но

grep --include=\script.py -rnwlF '/path/' -e 'print '

нет. Абсолютно уверен, что в файле есть место.

Что происходит? Может ли быть какая-то странная проблема с кодировкой символов?

1 Ответ

0 голосов
/ 15 мая 2018

Откуда вы взяли эту строку? Используя опцию -w, вы просите grep выбирать только те строки, которые соответствуют всему слову. Таким образом, удаление этого файла должно привести к выводу файла, если он содержит «print и пробел»:

grep --include=\script.py -rnlF '/path/' -e 'print '

Однако, если вы только grep просматриваете один файл, было бы проще написать:

grep -lF '/path/script.py' -e 'print '
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...