grep-r не работающий над Солярисом

Как я могу сделать рекурсивный grep на Солярисе?

Когда я попробовал, я получил эту ошибку:

-r: invalid option.
3
задан 26.07.2011, 04:36

5 ответов

Рекурсивный grep на Солярисе:

find . -name "*.[chix]" | xargs grep -i -n pattern_to_search
7
ответ дан 07.12.2019, 22:58

- r опция для grep работает только с гну grep. Решения с xargs хороши, но вызывают некоторые проблемы - находят | xargs grep, повредится на именах файлов с пробелами, и кроме того - xargs является также инструментом гну, таким образом, он не мог бы быть установлен.

Насколько я знаю, надлежащий способ сделать это на solaris:

find . -type f -exec grep ... {} +
  • в средствах конца, что будет много файлов, передал каждому вызову grep, таким образом, это будет относительно быстро.

Кроме того, обратите внимание, что solaris (хорошо, Unix) grep не имеет (например)-E опции, и необходимо использовать egrep для него.

1
ответ дан 07.12.2019, 22:58

Если Вы удачливы, у Вас есть гну grep установленный также. Это затем назовут "ggrep".

ggrep обычно располагается в /usr/sfw/bin/ggrep если это установлено. Используйте -H -R -I флаги: -H показать имя файла, -R для рекурсивного поиска, -I проигнорировать двоичные файлы.

Пример: Покажите все строки во всех файлах, кроме двоичных файлов, из этого каталога вниз включая все подкаталоги со словом "Excel"

/usr/sfw/bin/ggrep -H -R -I "excel" *
1
ответ дан 07.12.2019, 22:58
find . -type f -exec grep hello {} /dev/null \;

Это будет также работать на имена файлов с пробелами. Почему/dev/null? Поскольку каждый grep экземпляр осмотрит единственный файл за один раз и поэтому не печатает имя файла, если это найдет соответствие. Это прекрасно, если Вы действительно захватываете единственный файл только, но не помогает, если grep повторяющимся образом называют от находки. Дополнительный/dev/null служит дополнительным фиктивным файлом для поиска так, чтобы grep предварительно ожидал текущее имя файла, когда это распечатает согласующий отрезок длинной линии.

0
ответ дан 07.12.2019, 22:58

find . | xargs grep whatsyrexpression или используйте cpan устанавливать ack команда.

2
ответ дан 07.12.2019, 22:58

Теги

Похожие вопросы