какая команда используется для поиска внутри файла?

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

rastaman_sasha
Сообщения: 29
ОС: масдай

какая команда используется для поиска внутри файла?

Сообщение rastaman_sasha »

Привет всем,

есть ли в линуксе команда которая во всех вайлах искала бы слово или фразу?????



заранее благодарю
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: какая команда используется для поиска внутри файла?

Сообщение broom »

find / | xargs grep "слово или фраза"
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
c0sta
Сообщения: 61
ОС: Debian GNU/Linux 5.0 Lenny

Re: какая команда используется для поиска внутри файла?

Сообщение c0sta »

вариант
cat filename | grep 'слово'

ну или учите перл
крат. сес. тал.
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10

Re: какая команда используется для поиска внутри файла?

Сообщение BlackStar »

grep 'фраза' ./*
LightLang Team
Спасибо сказали:
pktfag
Сообщения: 142
ОС: Arch Linux

Re: какая команда используется для поиска внутри файла?

Сообщение pktfag »

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

find . -exec grep -H 'фраза' '{}' \;

Поиск в текущем каталоге всех файлов, в которых встречается фраза 'фраза'. Выводится также имя файла, в котором найдена эта фраза (ключ '-H').
Хотя кажется короче набирать

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

find . | xargs grep -H 'фраза'
.
Спасибо сказали:
Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

Re: какая команда используется для поиска внутри файла?

Сообщение Mellon »

а как покороче написать "искать текст в файлах определённого типа (например только в текстовых файлах)"
В голову приходит только:

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

find . -type f -exec file {} \; | grep text | sed s/':.*$'// | xargs -r -L 1 -I filename grep -H 'искомый текст' "filename"

Но когда в имени какого-нить текстового файла есть двоеточие, то получается ашипка
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали:
Аватара пользователя
KonishchevDmitry
Сообщения: 92
ОС: Ubuntu

Re: какая команда используется для поиска внутри файла?

Сообщение KonishchevDmitry »

У меня в ~/.bashrc прописана такая команда:
alias my_search='grep -EHnr --color'
Очень удобно. Если набрать
my_search "что ищу" /path/to/dir
то команда найдет все вхождения строки "что ищу" во всех файлах (рекурсивно) дирректории /path/to/dir. При этом выведет имя файла, строку и ее номер в файле, в которой было найдено совпадение, и подсветит в данной строке найденный паттерн. Причем в качестве "что ищу" можно использовать регулярные выражения.
Спасибо сказали: