Я хочу сделать простой регулярный поиск по каталогу, который не ограничен одной строкой.
Я попробовал grep и ack, но ни один из них, кажется, не поддерживает это.
Я знаю, что это не должно быть слишком вычислительно дорого (в моем случае), потому что мой текстовый редактор по выбору ( Sublime Text ) может сделать это просто отлично.
Я просто ищу эту версию командной строки. Google включил pcregrep , но я не могу найти это для Mac. Я просто не смотрю в нужном месте?
grep
с контекстом найти то, что вы хотите (-C1
)?Ответы:
Установите Homebrew и затем:
Это даст вам последнюю
pcregrep
источник
Вы не сказали точно, что ищете, поэтому я представлю задачу выяснить, содержит ли файл 112, а затем 223, не обращая внимания на переводы строки.
Немного придуманное
awk
решение:RS
Переменная содержит разделитель записей. Если установить пустую строку, весь файл будет прочитан как одна запись.Это, вероятно, будет очень неэффективно для больших файлов.
Кстати, я делаю это на OpenBSD, но OS X awk должен работать так же.
источник
v
иRS
. то естьawk -v RS='' '/112.*223/ { print "found it"; exit }' file.in
«pcregrep» может относиться к более старой
pcregrep
и более новой стабильным версиямpcre2grep
. Оба предоставлены проектом PCRE вpcre.org
.Порты Mac предоставляют первый как часть порта
pcre
(стабильный в версии 8.40), а второй как часть портаpcre2
(в настоящее время версия 10.22). Установить через:источник