Advanced grep

Написал небольшой скриптик, который красиво форматирует результаты рекурсивного поиска по исходникам (вообще-то по любым файлам, но я писал это все именно для поиска по дереву исходников :))

Вот так выглядят результаты его работы – это поиск слова ‘function’ по всем файлам во всех вложенных подпапках
screen.png
Как видно на скрине, результаты поиска группируются по файлам, показывается на какой строке файла найдено совпадение, сама искомая строка подсвечивается.
Поиск регистронезависимый.

@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!


 

Система Orphus

 


 

Comments: 12

  1. koct9i February 24th, 2010 at 5:17 pm

    http://betterthangrep.com/

  2. adw0rd February 24th, 2010 at 5:47 pm

    О, спасибо, у меня есть некий аналог, но только намного хуже :)

  3. alex February 24th, 2010 at 6:08 pm

    очень полезная вещь…грепать на много менее удобно =)
    спасибо
    предлагаю его залить на какой то github или googlecode, удобнее будет сопровождать скрипт)

  4. boombick February 24th, 2010 at 6:23 pm

    Спасибо за лестные отзывы, про googlecode подумаю, действительно неплохая идея :)

  5. boombick February 24th, 2010 at 6:38 pm

    2koct9i
    Суровая, конечно, вещь :) Мне нужна была именно простая и понятная софтинка. Погуглив, не нашел и написал сам :)

  6. ntanyone February 24th, 2010 at 7:04 pm

    эм… а ack-grep, не кактит? :) я не к тому, что то, что вы насписали никому не нужно… ;)

  7. ntanyone February 24th, 2010 at 7:14 pm

    сорри не обратил внимания на первый комментарий

  8. boombick February 24th, 2010 at 7:38 pm

    2ntanyone
    Комментарий #5 =) И вообще – больше софта, хорошего и разного. А без своих велосипедов мне скучно))

  9. ntanyone February 24th, 2010 at 7:43 pm

    если честно немного непонятно, в чем именно “суровость” ack`a :) а про софт и велосипеды – их должно быть ))) я сам еще тот велосипедостроитетель )))

  10. boombick February 24th, 2010 at 8:55 pm

    На мой неприхотливый взгляд – слишком много функционала. Хотя кто знает, что вырастет из этого скрипта на 20 строчек ;)

  11. anonymous February 24th, 2010 at 9:32 pm

    Использование временного файла мне как-то кажется не вполне кошерным.
    И еще, запустить правильно установленный баш (и другие интерпретаторы) можно вот так:
    #!/usr/bin/env bash

  12. ASLok February 25th, 2010 at 10:41 am

    Супер! ) Большой минус, что показывает только начало строки, если строка длинная место вхождения может быть далеко, а на него посмотреть очень даже интересно! А вообще, суппер )

Add a Comment