Advanced grep
Написал небольшой скриптик, который красиво форматирует результаты рекурсивного поиска по исходникам (вообще-то по любым файлам, но я писал это все именно для поиска по дереву исходников :))
Вот так выглядят результаты его работы – это поиск слова ‘function’ по всем файлам во всех вложенных подпапках
![]()
Как видно на скрине, результаты поиска группируются по файлам, показывается на какой строке файла найдено совпадение, сама искомая строка подсвечивается.
Поиск регистронезависимый.
@FIXME
При подсветке слова регистр слова сбрасывается
@TODO
Сделать разбивку результатов по страницам
Вынести настройки в конфиг (например такие, как цвет в результатах поиска)
Для работы использует bash, awk, grep, sed.
В скрипте есть такая строка
grep -vE '(svn|jquery)'
Это, собственно, исключения, которые надо выбрасывать из результатов поиска. Т.е. строки, в которых эти “буквосочетания” есть, в результаты не попадут. Если вам это не нужно, просто выкиньте эту часть (в последствии это тоже уйдет в конфиг) :)
Изначально все писалось для FreeBSD, посему если у вас bash установлен не по пути /usr/local/bin/bash, то либо поменяйте путь к интерпретатору, либо сделайте симлинк :)
Скрипт распространяется под BSD-лицензией, о багах пишите сюда :)
Скачать: http://code.google.com/p/srch/
Вот, вообщем-то, и все, enjoy! Надеюсь, кому-нибудь пригодится :)
UPD: Спасибо за совет с размещением на GoogleCode!
http://betterthangrep.com/
О, спасибо, у меня есть некий аналог, но только намного хуже :)
очень полезная вещь…грепать на много менее удобно =)
спасибо
предлагаю его залить на какой то github или googlecode, удобнее будет сопровождать скрипт)
Спасибо за лестные отзывы, про googlecode подумаю, действительно неплохая идея :)
2koct9i
Суровая, конечно, вещь :) Мне нужна была именно простая и понятная софтинка. Погуглив, не нашел и написал сам :)
эм… а ack-grep, не кактит? :) я не к тому, что то, что вы насписали никому не нужно… ;)
сорри не обратил внимания на первый комментарий
2ntanyone
Комментарий #5 =) И вообще – больше софта, хорошего и разного. А без своих велосипедов мне скучно))
если честно немного непонятно, в чем именно “суровость” ack`a :) а про софт и велосипеды – их должно быть ))) я сам еще тот велосипедостроитетель )))
На мой неприхотливый взгляд – слишком много функционала. Хотя кто знает, что вырастет из этого скрипта на 20 строчек ;)
Использование временного файла мне как-то кажется не вполне кошерным.
И еще, запустить правильно установленный баш (и другие интерпретаторы) можно вот так:
#!/usr/bin/env bash
Супер! ) Большой минус, что показывает только начало строки, если строка длинная место вхождения может быть далеко, а на него посмотреть очень даже интересно! А вообще, суппер )