Как в macOS найти файлы, содержащие текст

Ноябрь, 07th 2017Рубрика: Apple изнутри | *NIX 140
Подписаться на комментарии по RSS

MaxSite CMS не перестаёт удивлять своими, просто дикими, решениями. Вчера решил покончить с автоматическим формированием заголовков второго уровня в сайдбаре и столкнулся с очередным косяком системы - заголовки с уже прописанными стилями формировались на уровне ядра. Разработчик, почему-то решил, что его видение того, как и что должно выводиться в заголовках будет единственно верным.

Впоследствии, в процессе разборки, выяснилось что в специальном файле шаблона functions.php, с помощью функции mso_set_val(), всё-таки можно переопределять вывод заголовков. Спрашивается зачем было вообще городить этот огород? Причем, хоть как-то отобразить данный момент в документации, по всей видимости, религия не позволяла. Впрочем, отсутствие вменяемой документации, видимо особая "фишка" данной CMS.

Разобраться с этим, весьма не очевидным, формированием заголовков мне помогла замечательная команда grep, известная со времен работы под Linux и FreeBSD. Не секрет, что в macOS через консоль доступны все возможности Unix, ведь по сути, это тоже Unix система, но более дружественная обычному пользователю. Отсюда имеем и богатейший функционал при работе в терминале.

Используем grep для поиска текста

Итак, для поиска контента в файлах или фильтрации выходных данных используется команда grep. Найдём слово или фразу в указанной директории:

grep "text string" directory

В этом примере выведутся все вхождения искомой строки "text string", найденные в файлах из директории directory. Чтобы осуществить поиск без учета регистра, следует указывать параметр -i:

grep -i "text string" directory

Для рекурсивного поиска (позволяет найти фразу "text string" во всех файлах и подкаталогах) используется параметр -r:

grep -r "text string" directory

Узнать больше о команде grep можно там же, в терминале, вызвав справку:

man grep

В заключение, хочу показать как можно вывести список файлов, в которых нашлись вхождения текста "h2 class" с удалением дубликатов (предварительно я залил через ftp себе на рабочий стол каталог с шаблонами блога, где и требовалось произвести поиск):

sudo grep -Hr "h2 class" Desktop/templates/ | cut -d: -f1 | sort -u

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

comments powered by HyperComments
Без регистрации
ваш комментарий будет опубликован после проверки
Регистрация на сайте

На указанный адрес будет отправлено письмо с кодом активации. Вы можете настроить собственный профиль и стать активным участником или автором.