Wie kann ich nach Dateien suchen, die ein bestimmtes Wort enthalten?

37

Wie kann ich nach Dateien suchen, die ein bestimmtes Wort enthalten?

UAdapter
quelle
5
Meinen Sie eigentlich Suchdateinamen, die ein bestimmtes Wort enthalten? dh: alle Dateien, deren Name den Begriff FUN enthält, FUN_time.txt FUN_stuff.txt Oder IN einer Datei nach bestimmten Wörtern suchen?
dr_willis

Antworten:

51

Mit der Kommandozeile haben Sie mehrere Möglichkeiten. Die 3, die ich am häufigsten benutze, sind ...

  1. locate {part_of_word}

    Dies setzt voraus, dass Ihre Ortungsdatenbank auf dem neuesten Stand ist. Sie können diese jedoch manuell aktualisieren mit: sudo updatedb

  2. grepwie von dr_willis erklärt. Eine Bemerkung: -RNach grepauch in Verzeichnissen gesucht. Beispiel:

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

Wo .befindet sich das Verzeichnis, in dem Sie sich gerade befinden, und *ist ein Platzhalter.

Oh und Sie können diese auch kombinieren. Beispiel: locate {something}|grep {some_part_of_something}|more

Wenn ich mich richtig erinnere: locateist die schnellste (vorausgesetzt, Ihre Datenbank ist auf dem neuesten Stand) und finddie langsamste. Und grepist die komplexeste, aber auch die vielseitigste davon, da Sie Regex verwenden können.

Rinzwind
quelle
25

grep -R "was" "wo"

Beispiel:

grep -R hello /home

DemonWareXT
quelle
4

Das grep-Kommando wird üblicherweise dafür verwendet.

grep PATTERN filename

und grep kann einige sehr komplexe Suchvorgänge ausführen.

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
quelle
3
oder du kannst "rgrep word" machen um rekursiv jede Datei und jedes Unterverzeichnis nach "word" zu
durchsuchen
4

Sie können verwenden grepdie Dateien auflisten zu enthalten , wordin der angegebenen directory:

grep -Ril word directory

Hier:
* -RDateien in Unterverzeichnissen rekursiv durchsuchen.
* -iText ignorieren
* -lDateinamen anstelle von Dateiinhaltsteilen anzeigen. (Hinweis: -LZeigt Dateinamen an, die das Wort nicht enthalten.)

Verwenden Sie man grep, um alle Optionen abzurufen

Chandan
quelle
3
Nur damit Sie wissen: -iFührt eine Suche durch, bei der die Groß- und Kleinschreibung nicht berücksichtigt wird.
David Foerster