Cross: GREP-Befehl: Wie richtig anwenden?

Hallo Forum,

die Suche nach dem Grep-Befehl brachte zwar Ergebnisse, doch die, die ich ausprobiert habe, funktionieren nicht. Warscheinlich wende ich den Befehl trotz Beschreibung falsch an. :/

Ich möchte gerne viele Dateien im aktuellen, sowie dessen Unterverzeichnisse, nach einem String durchsuchen, der - style="width:460px;" - heisst. Dazu habe ich die verschiedensten Variationen von grep versucht, von denen ich meinte, dass sie funktionieren müssten :))

Z.B.:
grep -R "style="width:460px;"" *.php
grep -R 'style="width:460px;"' *.php
grep -R "style="width:460px;"" *.php
uvam.

Wie gesagt: Ohne Erfolg.

Wäre jemand so freundlich, mir in dieser Sache zu helfen?

Gruß
Cross

  1. Tach.

    Ich möchte gerne viele Dateien im aktuellen, sowie dessen Unterverzeichnisse, nach einem String durchsuchen, der - style="width:460px;" - heisst. Dazu habe ich die verschiedensten Variationen von grep versucht, von denen ich meinte, dass sie funktionieren müssten :))

    Z.B.:
    grep -R "style="width:460px;"" *.php
    grep -R 'style="width:460px;"' *.php
    grep -R "style="width:460px;"" *.php
    uvam.

    Alle diese Versuche sollten Dir eine Fehlermeldung liefern, die darauf hinweist, daß grep mit dem *.php nicht viel anfangen kann. Mach die Suche also in zwei Teilen:

    1. Suche alle Dateien mit der Endung .php im aktuellen Verzeichnis und dessen Unterverzeichnissen.

    find . -name *.php

    2. Suche in den Dateien nach Deiner Zeichenfolge.

    grep -H 'style="width:460px;"'

    Zusammen ergibt das

    find . -name *.php -exec grep -H 'style="width:460px;"' {} \;

    --
    Once is a mistake, twice is Jazz.
    1. Hallo,

      grep -R "style="width:460px;"" *.php
      grep -R 'style="width:460px;"' *.php
      grep -R "style="width:460px;"" *.php
      Alle diese Versuche sollten Dir eine Fehlermeldung liefern, die darauf hinweist, daß grep mit dem *.php nicht viel anfangen kann.

      wollt ihr mir allen Ernstes erzählen, dass grep unter Linux weniger kann als die Windows-Portierung? Unter Windows bin ich es jahrelang gewöhnt, dass ich für die zu durchsuchende(n) Datei(en) auch die Jokerzeichen '?' und "*" verwenden kann, um eine ganze Fülle von Dateien zu durchsuchen.

      Zusammen ergibt das
        find . -name *.php -exec grep -H 'style="width:460px;"' {} \;

      Junge, ist das umständlich ...

      So long,
       Martin

      --
      F: Was ist wichtiger: Die Sonne oder der Mond?
      A: Der Mond. Denn er scheint nachts. Die Sonne dagegen scheint tagsüber, wenn es sowieso hell ist.
      1. hi!

        wollt ihr mir allen Ernstes erzählen, dass grep unter Linux weniger kann
        als die Windows-Portierung? Unter Windows bin ich es jahrelang gewöhnt,
        dass ich für die zu durchsuchende(n) Datei(en) auch die Jokerzeichen '?'
        und "*" verwenden kann, um eine ganze Fülle von Dateien zu durchsuchen.

        Das liegt vielleicht daran, dass * und ? unter Unix/Linux ueblicherweise
        von der Shell interpretiert und expandiert werden, und nicht von dem
        aufgerufenen Programm wie unter Windows.

        grep kann das allerdings trotzdem:

        grep -r --include=\*.php 'style="width:460px;" *

        So aehnlich muesste das dann aussehen.

        bye, Frank!

        --
        Never argue with an idiot. He will lower you to his level and then
        beat you with experience.
  2. hallo,

    Z.B.:
    grep -R "style="width:460px;"" *.php
    grep -R 'style="width:460px;"' *.php
    grep -R "style="width:460px;"" *.php

    So wird das nix. Vermutlich steht ja "style='...'" _innerhalb_ deiner PHP-Scripts. Da kommst du mit grep nicht heran. Du mußt erst sämtliche Dateiinhalte in einen Array auslesen, den du dann durchsuchen kannst. Dazu nimmst du am besten Perl und schreibst dir eine Suchfunktion.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. hi!

      So wird das nix. Vermutlich steht ja "style='...'" _innerhalb_ deiner
      PHP-Scripts. Da kommst du mit grep nicht heran. Du mußt erst sämtliche
      Dateiinhalte in einen Array auslesen, den du dann durchsuchen kannst. Dazu
      nimmst du am besten Perl und schreibst dir eine Suchfunktion.

      Absoluter Unsinn. Das ist gerade der Sinn von grep, Dateien nach bestimmten
      Texten zu durchsuchen. Ich empfehle die Lektuere der man page, wozu ein
      Programm gut ist.

      bye, Frank!

      --
      Never argue with an idiot. He will lower you to his level and then
      beat you with experience.
      1. hallo,

        Ich empfehle die Lektuere der man page, wozu ein Programm gut ist.

        die hier?

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
    2. Hallo Christoph.

      So wird das nix. Vermutlich steht ja "style='...'" _innerhalb_ deiner PHP-Scripts. Da kommst du mit grep nicht heran.

      Ich darf man grep zitieren:
      "grep searches the named input FILEs [..] for lines containing a match to the given PATTERN."

      Auf gut deutsch: grep sucht _in_ den angegebenen Dateien nach Zeilen, die auf das gegeben Muster passen.

      Servus,
      Flo