Комментарии 40
Мне вполне хватает: grep -r «TEXT» /files
+52
упс… не знал про эту команду:)
-22
Такие простейшие вещи, и все большинство, что можно было бы придумать уже за вас реализовано.
Не проще было сделать так? google.ru {linux поиск в файлах}, а потом уже велосипет.
Хотя чего грешить и сам было писал велосипеды :)
Не проще было сделать так? google.ru {linux поиск в файлах}, а потом уже велосипет.
Хотя чего грешить и сам было писал велосипеды :)
+8
Хренасе не знать! Читай Брайна Кернигана «UNIX программное окружение». Отцы дерьма не напишут!
0
А еще лучше grep -r -n «text» /path
-n показывает строку где был найден фрагмент
-n показывает строку где был найден фрагмент
0
ну и -C 3 — чтобы видеть +- 3 строки вокруг
+2
НЛО прилетело и опубликовало эту надпись здесь
Что плохо в man grep (а тем более info grep), что возможностей и ключей у неё до фига и держать их все в голове, имхо, не реально. Даже возможности, чтоб ключ подсмотреть в полной уверенности, что он есть.
Учить их впрок — как-то глупо, разбираться каждый раз почти с нуля — неэффективно. Проще написать свой скрипт, который решает твои задачи, а не «неопределенного круга лиц». Пускай этот скрипт даже будет вызовом того же grep c теми ключами, с которыми разобрался (или где-то подсмотрел), но которые явно не запомнишь. Дать ему понятное для себя имя и юзать. Недостаток такого подхода — на чужой машине будешь беспомощен. Зато на своей — царь и бог без необходимости зубрить весь /usr/bin и ключи каждой программы в нём :)
Учить их впрок — как-то глупо, разбираться каждый раз почти с нуля — неэффективно. Проще написать свой скрипт, который решает твои задачи, а не «неопределенного круга лиц». Пускай этот скрипт даже будет вызовом того же grep c теми ключами, с которыми разобрался (или где-то подсмотрел), но которые явно не запомнишь. Дать ему понятное для себя имя и юзать. Недостаток такого подхода — на чужой машине будешь беспомощен. Зато на своей — царь и бог без необходимости зубрить весь /usr/bin и ключи каждой программы в нём :)
0
Ещё очень полезной штукой является второй регэксп, фильтрующий имена файлов (расширения, например). Так же неплохо бы использовать egrep, у него, вроде, плюшек побольше.
0
Ну, целью было написать самый простой скрипт. И судя по комментарию выше, эти полчаса потрачены были зря.
+3
Ну допиливайте плюшки к скрипту и тогда он станет действительно полезным. Собственно, уже сейчас вывод покрасивше, чем у grep -r.
0
Пожалуй так и поступлю:)
0
зачем?
grep -nTH --color=auto
и попытайтесь объяснить, что же революционно нового в этом велосипеде (автор, без обид… )?
Автору:
лучше потратьте время и силы для чего-нибудь действительно полезного, в крайнем случае помогите улучшить grep если есть желание и умные идеи.
grep -nTH --color=auto
и попытайтесь объяснить, что же революционно нового в этом велосипеде (автор, без обид… )?
Автору:
лучше потратьте время и силы для чего-нибудь действительно полезного, в крайнем случае помогите улучшить grep если есть желание и умные идеи.
+7
Оу. Может, ещё подскажете, как его заставить адекватно фильтровать имена файлов?
-5
я вас не понимаю )))
что значит адекватно фильтровать, не всё подряд проверять?
find dir/ -name '*.txt' | xargs grep…
ну или при помощи exec… просто я обычно в файл всё грепплю подобной конструкцией
что значит адекватно фильтровать, не всё подряд проверять?
find dir/ -name '*.txt' | xargs grep…
ну или при помощи exec… просто я обычно в файл всё грепплю подобной конструкцией
+3
find dir/ -name '*.txt' | xargs grepНу это уже целых три разных бинарника. Просто хочется писать меньше букв и чтобы всё сразу было. У себя для этих целей держу кучу alias-ов.
-3
> Просто хочется писать меньше букв и чтобы всё сразу было
Не, это не тру unix-way :)
Одна задача — одно приложение.
Не, это не тру unix-way :)
Одна задача — одно приложение.
+3
unix-way — это очень хорошо, но для часто выполняемых действий нужна и кнопка «сделать заебись».
+1
Шелл-скрипты обязательно считать приложением? А скрипты на других интерпретируемых языках (python, ruby, php например)? А на компилируемых? А если задача сложная и одним глаголом (или его производными) не описывается?
0
Сорри за оффтоп, немного не так прочитал ваш коммент первый раз))
0
Пакет ack-grep (в маке просто ack) — работает быстрее grep -r и находит все прекрасно.
+2
Yii — респект ;)
-14
Новые велосипеды — такие новые :)
man grep (grep -rl 'pattern' /path/to/files)
man grep (grep -rl 'pattern' /path/to/files)
+2
Всегда пользуюсь grep «text» * -ir
+1
А это мой:
find ./ -type f -exec grep -H 'my_string' '{}' \;
find ./ -type f -exec grep -H 'my_string' '{}' \;
+3
Ебать!
-3
А в чём смысл полупрозрачного терминала?
-1
yii!
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Поиск файлов по содержимому из терминала