Как в macOS найти файлы, содержащие текст
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
Комментариев: 1
Случайно наткнулся на вашу статью. С начинающий вэбразработчик и даже не знал что там можно. Попробовал - действительно помогает экономить время. Спасибо за то что просвещаете