Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Wie suche ich per "find" nach mehreren Patterns?

  1. #1
    Linux Deutschland
    Registriert seit
    Apr 2003
    Beiträge
    1.099

    Wie suche ich per "find" nach mehreren Patterns?

    Moin Jungs,

    ich bin mal wieder trotz intensivem Google-Studium mit meinem Latein am Ende.
    Wie kann ich per "find" mehrere Patterns übergeben?

    Also in etwa sowas hatte ich mir vorgestellt:

    # find . -name "*.cpp" "*.java"
    oder
    # find . -name "*.(cpp|java)"

    Geht beides nicht und viele andere Variationen die ich getestet habe auch nicht
    Wie kann ich am elegantesten Dateien inkl. vollem Pfad mit bestimmten Dateiendungen finden?

  2. #2
    Mod. Tipps und Tricks Avatar von carnil
    Registriert seit
    Jan 2004
    Ort
    Zürich
    Beiträge
    6.215
    Hi

    Ich glaub gerade vor einer Woche oder so war das schon mal ... aber ich finde den Thread nicht mehr, habe aber den Tipp in meine Tippsammlung aufgenommen, dort wurde damals folgendes gesagt:
    find / \( -name "*$1*" -o -name "*$2*" \)
    $1 und $2 durch die suchbegriffe ersetzen
    Wer genau das gepostet hat, weiss ich jetzt leider nicht mehr ...

    MfG carnil

  3. #3
    Linux Deutschland
    Registriert seit
    Apr 2003
    Beiträge
    1.099
    Das "-o" ist der entscheidende Tip.

    Ich habs jetzt so gemacht:

    find . -name "*.cpp" -o -name "*.java" -o -name "*.pl"
    usw.

    Es funzt einwandfrei, besten Dank!!!

    Man muß schon einiges lernen, bis man Shell-H4x0r ist

    Eleganter wäre natürlich die Möglichkeit dem find-Befehl eine Liste von Endungen als Datei zu übergeben.

  4. #4
    Linux Deutschland
    Registriert seit
    Apr 2003
    Beiträge
    1.099
    Ich habs jetzt so gelöst:

    find . -name '*' | egrep '\.(cpp|pl|java)$'

  5. #5
    Mod. Tipps und Tricks Avatar von carnil
    Registriert seit
    Jan 2004
    Ort
    Zürich
    Beiträge
    6.215
    Zitat Zitat von hiTCH-HiKER
    Ich habs jetzt so gelöst:

    find . -name '*' | egrep '\.(cpp|pl|java)$'
    Wird jetzt auch mal in meine Tipp-Sammlung aufgenommen ... Hätte aber noch eine Frage, entschuldigt meine Dummheit (kann aber nicht wirklich "programmieren", beinhaltet auch vom Aufwand klug gewählte Lösungsansätze für Skripte): Welche der beiden Methoden wäre von der "Suchperformance" besser?

    MfG carnil

  6. #6
    Agent (Clone #17264) Avatar von Jasper
    Registriert seit
    Jul 2002
    Ort
    The Matrix (Reloaded)
    Beiträge
    3.073
    Zitat Zitat von carnil
    Wird jetzt auch mal in meine Tipp-Sammlung aufgenommen ... Hätte aber noch eine Frage, entschuldigt meine Dummheit (kann aber nicht wirklich "programmieren", beinhaltet auch vom Aufwand klug gewählte Lösungsansätze für Skripte): Welche der beiden Methoden wäre von der "Suchperformance" besser?
    # time find / -name "*.cpp" -o -name "*.pl" -o -name "*.java" | wc -l
    6781

    real 3m12.152s
    user 0m0.650s
    sys 0m1.360s

    # time find / -name "*" | egrep '\.(cpp|pl|java)$' | wc -l
    6781

    real 3m9.720s
    user 0m0.470s
    sys 0m1.110s


    nimmt sich nix. wobei ich die variante ohne grep bevorzuge.


    -j
    "Oh my God!" "Smith will suffice" (Agent Smith, Matrix)
    "The first rule of holes is: when you find yourself in one, stop digging." (PJ, Groklaw)

Ähnliche Themen

  1. Drucker geht nicht!!
    Von RussenMafia im Forum Linux Allgemein
    Antworten: 20
    Letzter Beitrag: 05.03.04, 11:09
  2. Emaxs: Casesensitive Suche, Suche in mehreren Dateien?
    Von nobody0 im Forum Anwendungen Allgemein, Software
    Antworten: 0
    Letzter Beitrag: 07.12.03, 11:17
  3. SUCHE jemanden, den ich immer mal per chatproggy um rat fragen kann
    Von zippelmann im Forum System installieren und konfigurieren
    Antworten: 4
    Letzter Beitrag: 19.08.02, 22:02
  4. Antworten: 7
    Letzter Beitrag: 11.02.01, 09:21

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •