Pull to refresh

Comments 40

Мне вполне хватает: grep -r «TEXT» /files
упс… не знал про эту команду:)
Такие простейшие вещи, и все большинство, что можно было бы придумать уже за вас реализовано.
Не проще было сделать так? google.ru {linux поиск в файлах}, а потом уже велосипет.
Хотя чего грешить и сам было писал велосипеды :)
Хренасе не знать! Читай Брайна Кернигана «UNIX программное окружение». Отцы дерьма не напишут!
А еще лучше grep -r -n «text» /path
-n показывает строку где был найден фрагмент
ну и -C 3 — чтобы видеть +- 3 строки вокруг
UFO just landed and posted this here
Что плохо в man grep (а тем более info grep), что возможностей и ключей у неё до фига и держать их все в голове, имхо, не реально. Даже возможности, чтоб ключ подсмотреть в полной уверенности, что он есть.

Учить их впрок — как-то глупо, разбираться каждый раз почти с нуля — неэффективно. Проще написать свой скрипт, который решает твои задачи, а не «неопределенного круга лиц». Пускай этот скрипт даже будет вызовом того же grep c теми ключами, с которыми разобрался (или где-то подсмотрел), но которые явно не запомнишь. Дать ему понятное для себя имя и юзать. Недостаток такого подхода — на чужой машине будешь беспомощен. Зато на своей — царь и бог без необходимости зубрить весь /usr/bin и ключи каждой программы в нём :)
UFO just landed and posted this here
UFO just landed and posted this here
Не надо ничего учить.
Жмете ctrl+R и ищете в истории командной строки.
Ещё очень полезной штукой является второй регэксп, фильтрующий имена файлов (расширения, например). Так же неплохо бы использовать egrep, у него, вроде, плюшек побольше.
Ну, целью было написать самый простой скрипт. И судя по комментарию выше, эти полчаса потрачены были зря.
Ну допиливайте плюшки к скрипту и тогда он станет действительно полезным. Собственно, уже сейчас вывод покрасивше, чем у grep -r.
Пожалуй так и поступлю:)
зачем?

grep -nTH --color=auto

и попытайтесь объяснить, что же революционно нового в этом велосипеде (автор, без обид… )?

Автору:
лучше потратьте время и силы для чего-нибудь действительно полезного, в крайнем случае помогите улучшить grep если есть желание и умные идеи.
Оу. Может, ещё подскажете, как его заставить адекватно фильтровать имена файлов?
я вас не понимаю )))
что значит адекватно фильтровать, не всё подряд проверять?
find dir/ -name '*.txt' | xargs grep…
ну или при помощи exec… просто я обычно в файл всё грепплю подобной конструкцией
find dir/ -name '*.txt' | xargs grep
Ну это уже целых три разных бинарника. Просто хочется писать меньше букв и чтобы всё сразу было. У себя для этих целей держу кучу alias-ов.
> Просто хочется писать меньше букв и чтобы всё сразу было
Не, это не тру unix-way :)
Одна задача — одно приложение.
unix-way — это очень хорошо, но для часто выполняемых действий нужна и кнопка «сделать заебись».
Шелл-скрипты обязательно считать приложением? А скрипты на других интерпретируемых языках (python, ruby, php например)? А на компилируемых? А если задача сложная и одним глаголом (или его производными) не описывается?
Сорри за оффтоп, немного не так прочитал ваш коммент первый раз))
Пакет ack-grep (в маке просто ack) — работает быстрее grep -r и находит все прекрасно.
Действительно хорошая утилита, жаль раньше не знал про неё)
Недавно начал изучать, тоже в экстазе:)
Новые велосипеды — такие новые :)

man grep (grep -rl 'pattern' /path/to/files)
А это мой:

find ./ -type f -exec grep -H 'my_string' '{}' \;
UFO just landed and posted this here
И у меня, и у меня! :)
Удобно, если на фоне открыта какая-нибудь статья/howto/man.
В данном случае видно имена файлов/каталогов, которые можно вводить в качестве пути поиска, а не мучаться с автокомплитом.
Sign up to leave a comment.

Articles