Как искать файлы, содержащие определенное слово?

37

Как искать файлы, содержащие определенное слово?

UAdapter
источник
5
Вы на самом деле имеете в виду поисковый файл NAMES, содержащий в себе определенное слово? то есть: все файлы, в именах которых есть термин FUN, FUN_time.txt FUN_stuff.txt Или поиск ВНУТРИ файла для конкретных слов?
dr_willis

Ответы:

51

С командной строкой у вас есть несколько вариантов. 3 я использую больше всего ...

  1. locate {part_of_word}

    Это предполагает, что ваша база данных locate обновлена, но вы можете обновить ее вручную с помощью: sudo updatedb

  2. grepкак объяснил dr_willis. Одно замечание: -Rпосле grepпоиска также в каталогах. Пример:

    cd\
    grep -R {something_to_look_for} {where_to_look_in}
    
  3. find . -name '*{part_of_word}*' -print

Где .находится каталог, где вы находитесь в данный момент и *подстановочный знак.

Ох, и вы также можете объединить их. Пример: locate {something}|grep {some_part_of_something}|more

Если я правильно помню: locateэто самый быстрый (при условии, что ваша база данных обновлена) и findсамый медленный. И grepэто самый сложный, но и самый универсальный из них, так как вы можете использовать регулярные выражения.

Rinzwind
источник
25

grep -R "что" "где"

пример:

grep -R hello /home

DemonWareXT
источник
4

Для этого обычно используется команда grep.

grep PATTERN имя файла

и grep может выполнить очень сложный поиск.

willis@Cow:~$ grep --help
Usage: grep [OPTION]... PATTERN [FILE]...
Search for PATTERN in each FILE or standard input.
PATTERN is, by default, a basic regular expression (BRE).
Example: grep -i 'hello world' menu.h main.c
dr_willis
источник
3
или вы можете сделать «rgrep word». рекурсивно искать в каждом файле и подкаталоге слово "
Джереми Бича
4

Вы можете использовать grepдля перечисления файлов, содержащихся wordв данном directory:

grep -Ril word directory

Здесь:
* -Rрекурсивный поиск файлов в подкаталогах.
* -iигнорировать регистр текста
* -lпоказывать имена файлов вместо частей содержимого файлов. (примечание: -Lпоказывает имена файлов, которые не содержат слово).

использовать, man grepчтобы получить все варианты

Chandan
источник
3
Просто чтобы вы знали: -iвыполняет поиск без учета регистра.
Дэвид Фёрстер