Anzeige:
Ergebnis 1 bis 4 von 4

Thema: use grep with regex in PHP skript with exec()

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jul 2014
    Beiträge
    2

    use grep with regex in PHP skript with exec()

    Hallo Community,

    Ich schreibe ein PHP-Skript welches in mehreren Unterverzeichnissen nach einer bestimmten Datei suchen soll. Die Datei enthält den String "host_name $string", die Anzahl der Leerzeichen ist variabel.

    aktuell habe ich folgenden Code:
    Code:
    <?php
    $path = '/omd/sites/test/etc/icinga/conf.d/objects/';
    $string= 'switch';
    
    $shellCommand = "grep -E -r --include='cfg host_name*$string' $path";
                    $result = exec($shellCommand);
                    $hostfile = file($result);
                    $hostfile_array = preg_grep("/#/", $hostfile, PREG_GREP_INVERT);
                    .
                    .
                    .
    ?>
    Ich bekommen dabei die folgende Fehlermeldung:
    Code:
    execgrep: unknown directories method
    file()PHP Warning:  file(): Filename cannot be empty
    Ich habe es ebenfalls bereits mit der Variante versucht:
    Code:
    "$result = shell_exec($shellCommand);"
    versucht.

    Wäre für Hilfe dankbar.

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    ich würde mir einfach mal ein paar Debug-Ausgaben einbauen, was denn in den einzelnen Variablen so drinsteckt und ggf. die Aufrufe auch mal direkt an der Konsole testen - dann findet sich der Fehler meist recht schnell...

    Zudem würde es sich vielleicht noch lohnen, die man-page zu grep nochmals genauer zu lesen:
    Code:
           --include=GLOB
                  Search only files whose base name matches GLOB  (using  wildcard
                  matching as described under --exclude).
    ... nach der textuellen Beschreibung willst Du nämlich das nicht.
    Geändert von marce (24.07.14 um 12:39 Uhr)
    Ich bin root - ich darf das.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Jul 2014
    Beiträge
    2
    Hab mittlerweile mittels:

    $shellCommand = "grep -r -P 'host_name[\s]*$string' $path";

    hinbekommen.

    Möchte allerdings Zeilen welche mit # beginnen bei der Suche gerne ignorieren.
    Geht das mittels RegEx?
    Geändert von chaser (24.07.14 um 15:29 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    Zitat Zitat von chaser Beitrag anzeigen
    Möchte allerdings Zeilen welche mit # beginnen bei der Suche gerne ignorieren.
    Geht das mittels RegEx?
    ja.

    Stichwort "ignore" - oder inverses matching - und ein Blick in die Doku von grep.
    Ich bin root - ich darf das.

Ähnliche Themen

  1. Das Skript hängt: Exec=gnome-terminal --execute bash -c "/home/ich/rdp.sh ; bash"
    Von piccus im Forum System installieren und konfigurieren
    Antworten: 0
    Letzter Beitrag: 14.03.14, 11:10
  2. grep mit Regulären Ausdrücken - regex
    Von wotuzu17 im Forum Anwendungen Allgemein, Software
    Antworten: 7
    Letzter Beitrag: 10.01.10, 21:06
  3. Bash-Skript, grep und Variablen durchsuchen
    Von der_angler im Forum Linux Allgemein
    Antworten: 6
    Letzter Beitrag: 08.07.07, 20:48
  4. RegEx
    Von Miksch im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 22.02.05, 10:07
  5. ps und grep: warum findet grep sich selbst nicht immer?
    Von variant im Forum Linux Allgemein
    Antworten: 6
    Letzter Beitrag: 24.03.04, 22:32

Stichworte

Lesezeichen

Berechtigungen

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