Поиск строки в файлах в Mac OS X

Часто требуется найти не файлы по названию, а строки в файлах или файлы, содержащие какую-то строку или регулярное выражение. Чтобы найти какую-либо строку во всех файлах в данном каталоге или рекурсивно по всем каталогам, нужно использовать команду grep.

grep — утилита командной строки, которая находит строки, отвечающие заданному регулярному выражению, и выводит их, если вывод не отменён специальным ключом. Название представляет собой акроним английской фразы «search globally for lines matching the regular expression, and print them» — «искать везде строки, соответствующие регулярному выражению, и выводить их».

Например:

Эта команда выведет все названия файлов, содержащих “123abc” и имеющих расширение “html”.

Полное описание команды можно получить используя команду:

Пример поиска строки во всех вложенных файлах в данной папке (без рекурсии по вложенным папкам):

Данная команда выведет все строки во всех вложенных папках, которые содержат слово “topic”

Пример поиска строки в файле:

Эта команда выведет все строки в файле 1.txt, содержащие слово ‘Matthew’.

Пример поиска строки во всех файлах рекурсивно по всем вложенным папкам:

Здесь звездочка означает любой файл. -l выводит список файлов вместо строк, -r – рекурсия. Можно ставить как одинарные, так и двойные кавычки. Названия файлов тоже могут быть в кавычках, если содержат пробелы.

Пример простого поиска с регулярным выражением:

Данная команда выведет все строки из файла 1.txt, которые содержат сочетание(не обязательно слово) “Contr”. Каретка^ означает начало, доллар$ – конец. Точка(.) – любой символ, кроме новой строки, звездочка(*) – повторение предыдущего символа любое число раз.

Пример сложного поиска с регулярным выражением:

Здесь -i означает то, что grep будет case-insensitive. Все, что находится в одинарных кавычках – регулярное выражение, которое мы ищем. Команда ищет все htm и html файлы рекурсивно по всем папкам.

Если нужно сохранить результат поиска (список файлов) в файл, нужно дописать следующее:

Если нужно отредактировать все файлы, содержащие подходящие строки, нужно просто команду заключить в кавычки след. образом:

Источник информации для данной статьи:
http://hints.macworld.com/article.php?story=20001105214242629

Справочник по регулярным выражениям

Leave a Reply

Your email address will not be published. Required fields are marked *