grep (поиск файлов по содержимому)

На самом деле это единственный раздел про unix на этом форуме

Модератор: /dev/random

Аватара пользователя
ArkanJR
Сообщения: 1104
ОС: MS Windows, МСВС

grep

Сообщение ArkanJR » 20.05.2015 20:21

Хотел бы уточнить: содержимое можно задать только в виде слова или же данной утилите можно "скормить" и фразу?
— Да, это была ошибка, Кемп, огромная ошибка, что я взялся один за это дело. Напрасно потрачены силы, время, возможности. Один… Удивительно, как беспомощен человек, когда он один! Мелкая кража, потасовка — и всё.

© Г. Уэллс "Человек-невидимка"
Спасибо сказали:

Kopilov
Сообщения: 662
ОС: Gentoo, Debian

Re: grep

Сообщение Kopilov » 20.05.2015 20:30

Если я правильно Вас понял -- можно, только в кавычках -- как и почти любой GNU-утилите:

Код: Выделить всё

grep -R "что ищем" где
Ещё оно с регулярными выражениями работать умеет.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 2580
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: grep

Сообщение Hephaestus » 20.05.2015 21:14

Более того, можно скормить из файла, содержащего более одной строки. Ключ -f.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15835
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: grep

Сообщение Bizdelnick » 20.05.2015 21:25

ArkanJR писал(а):
20.05.2015 20:21
содержимое можно задать только в виде слова или же данной утилите можно "скормить" и фразу?

Утилите «скармливается» не слово и не фраза, а регулярное выражение. Но Вам, видимо, для начала нужно почитать что-то по основам работы в командной строке. Вот это, например.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
ArkanJR
Сообщения: 1104
ОС: MS Windows, МСВС

Re: grep

Сообщение ArkanJR » 21.05.2015 18:16

Kopilov писал(а):
20.05.2015 20:30
Если я правильно Вас понял -- можно, только в кавычках -- как и почти любой GNU-утилите:

Код: Выделить всё

grep -R "что ищем" где

Да, я именно об этом.
— Да, это была ошибка, Кемп, огромная ошибка, что я взялся один за это дело. Напрасно потрачены силы, время, возможности. Один… Удивительно, как беспомощен человек, когда он один! Мелкая кража, потасовка — и всё.

© Г. Уэллс "Человек-невидимка"
Спасибо сказали:

DONBASS
Сообщения: 48
ОС: macOS

Re: grep

Сообщение DONBASS » 21.05.2015 22:55

Сам только начал изучать консоль.
Опыт у меня не практический, а начитанный.
grep - понимает некоторые регулярные выражения.
egrep - понимает все регулярные выражения
fgrep - игнорирует синтаксис регулярных выражений
rgrep - ищет рекурсивно
По grep много информации, некоторые сайты освещают эту команду лучше wiki.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15835
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: grep

Сообщение Bizdelnick » 21.05.2015 23:00

DONBASS писал(а):
21.05.2015 22:55
grep - понимает некоторые регулярные выражения.
egrep - понимает все регулярные выражения

Не так. У них разный синтаксис, у egrep — более продвинутый (расширенный). Но это не значит, что регулярное выражение grep (с базовым синтаксисом) всегда будет корректным для egrep.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
SLEDopit
Модератор
Сообщения: 4666
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: grep

Сообщение SLEDopit » 21.05.2015 23:50

DONBASS писал(а):
21.05.2015 22:55
grep - понимает некоторые регулярные выражения.
egrep - понимает все регулярные выражения
fgrep - игнорирует синтаксис регулярных выражений
rgrep - ищет рекурсивно
вы man не пробовали по grep'y почитать?
там это всё разжёвано проще некуда:

Код: Выделить всё

       In addition, three variant programs egrep, fgrep and rgrep are available.  egrep is the same as grep -E.
       fgrep is the same as grep -F.  rgrep is the same  as grep -r.  Direct invocation as either egrep or fgrep
       is deprecated, but is provided to allow historical applications that rely on them to run unmodified.

Ну а про -E, -F и -r в том же man'e но чуть ниже всё тоже подробно расписано.
обратите внимание на явное указание, что egrep и fgprep is deprecated.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:

DONBASS
Сообщения: 48
ОС: macOS

Re: grep

Сообщение DONBASS » 22.05.2015 11:30

Bizdelnick писал(а):
21.05.2015 23:00
Не так. У них разный синтаксис, у egrep — более продвинутый (расширенный). Но это не значит, что регулярное выражение grep (с базовым синтаксисом) всегда будет корректным для egrep.

Обычно новичкам советую воспользоваться поиском в google... теперь необходимо проверять найденное на подлинность. Уже не раз натыкался на инструкции, которые не срабатывают. Похоже освоить bash самостоятельно, глупая затея.
Незная английского и похоже у меня не математический склад ума. Читаю я эти книги, равносильно, что китайски...

SLEDopit писал(а):
21.05.2015 23:50
вы man не пробовали по grep'y почитать? там это всё разжёвано проще некуда:

Код: Выделить всё

       In addition, three variant programs egrep, fgrep and rgrep are available.  egrep is the same as grep -E.
       fgrep is the same as grep -F.  rgrep is the same  as grep -r.  Direct invocation as either egrep or fgrep
       is deprecated, but is provided to allow historical applications that rely on them to run unmodified.

Ну а про -E, -F и -r в том же man'e но чуть ниже всё тоже подробно расписано.
обратите внимание на явное указание, что egrep и fgprep is deprecated.

Ни чего из этого не понятно. Там же на английском написано. Поэтому и ищу информацию по всему инету.
В полной мере я не могу доказать свои примеры и опровергнуть Ваши, но в следующий раз когда воспользуюсь командой grep я учту Ваши замечания.
P.S. из иностранных языков, раньше понимал и мог ответить только на итальянском, но за не надобностью забывается.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 2580
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: grep

Сообщение Hephaestus » 22.05.2015 12:03

DONBASS писал(а):
22.05.2015 11:30
Ни чего из этого не понятно. Там же на английском написано.
translate.google.com в помощь.
Тексты манов - это всё же не Шекспир, поэтому машинный перевод + собственная голова позволяют понять, что написано.

DONBASS писал(а):
22.05.2015 11:30
P.S. из иностранных языков, раньше понимал и мог ответить только на итальянском, но за не надобностью забывается.
Маны переведены на многие языки. Возможно, и на итальянском есть.
Конечно, это касается не всех манов и не всех языков, но посмотреть можно.
На худой конец здесь...
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15835
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: grep

Сообщение Bizdelnick » 22.05.2015 12:15

Hephaestus писал(а):
22.05.2015 12:03
Маны переведены на многие языки. Возможно, и на итальянском есть.

Да и на русском есть. Только я их у себя грохнул на фиг, чтобы не мешались, потому как они в большинстве своём давно утратили актуальность.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

moshell
Сообщения: 27

Re: grep

Сообщение moshell » 25.10.2015 01:51

Jeffrey Friedl's Mastering Regular Expressions

есть в русском. библия регулярных выражений. после прочтения сможете найти и чЁрта лысого
Спасибо сказали:

Аватара пользователя
s.xbatob
Сообщения: 807
ОС: Fedora

Re: grep

Сообщение s.xbatob » 25.10.2015 11:49

moshell писал(а):
25.10.2015 01:51
библия регулярных выражений. после прочтения сможете найти и чЁрта лысого

Библия - в смысле мутно, неоднозначно, запутанно и непонятно? :)
Кстати, в настоящей библии никаких чертей нет.
Спасибо сказали:

moshell
Сообщения: 27

Re: grep

Сообщение moshell » 25.10.2015 12:55

я сначала не понял. но теперь понял

ты троль. толстый.
Спасибо сказали: