Всегда удобно использовать программные средства для привычных и обыденных задач — например поиск файлов или текста (содержимого) этих файлов. Гораздо интереснее, когда подобная задача стоит, когда у Вас под рукой только консоль. Но не беда — в этой статье я покажу, как искать по содержимому, используя консоль Ubuntu.
Итак, все гениальное просто. Первый пример — поиск текста «foo» в директории /home/bar:
sudo grep -rl 'foo' /home/bar
sudo при поиске не обязателен, если Вы ищете только среди доступных текущему пользователю файлов. При необходимости поиска по всем файлам, без исключений — используйте sudo.
Чтобы вывести результат с подсветкой, которая существенно упростит его восприятие используйте следующий пример:
sudo grep -r 'foo' /home/bar/ --color
Но, при этом Вы получите все совпадения. Если же Вам нужно искать только совпадения в отдельном слове — примените директиву -w.
grep -w foo bar.php
При поиске в больших файлах полезно знать строку, в которой найдено совпадение. Здесь поможет директива -n.
grep -rnw foo /home/bar
Для поиска только в конкретном файле укажите его имя вместо директории:
grep foo bar.php