egrep, grep, fgrep Problem

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von gambit1978, 16.11.2005.

  1. #1 gambit1978, 16.11.2005
    gambit1978

    gambit1978 Grünschnabel

    Dabei seit:
    16.11.2005
    Beiträge:
    1
    Zustimmungen:
    0
    Hi @ all,

    dies ist mein erster Thread in eurem Forum und ich hab gleich mal ne gemeine Frage.

    Ich schlage mich derzeit mit nem grep Problem herum.

    In einem meiner Scripte mache ich ne Abfrage auf eine bestimmte Reg-Expr am Anfang der betreffenden Zeile. z.B.:
    ls -l /pfad/zum/ziel | awk '{ print $9 }' | grep '^dateiname'

    Rockt auf meiner "Entwicklungsmaschine" (Suse) auch absolut astrein.
    Nur wenn ich selbiges Kommando unter Debian aufrufe macht der mir den "grep" nicht! Die eingegebene Syntax ist 100%ig exakt die selbe!
    Mache ich nen grep -v zeigt er mir dann auch brav die gewünschte Expression als nichtauffindbar an. Nur WARUM?

    Mein erster Verdacht fiel auf unterschiedliche grep-Versionen. Habe dann kurzerhand die funktionierende grep der Suse-Maschine auf den Debian transferiert -> ohne Ergebnis. Sobald ich Parameter für Zeilenanfang ( ^ ) oder Zeilenende ( $ ) ins Spiel bringe löst der mir die Expressions nicht mehr auf.

    Hab mir jetzt einige Stunden dieses Problem um die Ohren geschlagen und noch immer keinen Lösungsansatz... ?(
    Wie schon gesagt, auf der Suse-Kiste gehen die Befehle sofort und ohne Probleme, nur der Debian-Knecht weigert sich standhaft.

    Hat von euch wer evtl. noch ne Idee?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Schlaubi_fi.de, 16.11.2005
    Zuletzt bearbeitet: 16.11.2005
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Hallo,

    versuchs doch mal so:

    Code:
    ls -l /pfad/zum/ziel | awk '{ print $8 }' | grep -E '^dateiname'
    bzw. so...

    Code:
    ls -l /pfad/zum/ziel | awk '/dateiname/ { print $8 }'
    oder... :)
     
  4. #3 Wolfgang, 17.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Warum so Umständlich?
    Wenn dich nur der Dateiname interessiert genügt zunächst
    ls -1|grep '^filename'
    Ich kann zwar nicht nachvollziehen, was SyZe da anders macht, aber scheinbar liegt es weniger am grep als an den Systemeinstellungen.
    Damit der Matcher auf Zeilenanfang und Ende richtig funktioniert, muss sichergestellt sein, dass auch die richtigen RS(Recordseperator) verwendet werden. Unter Unixodiden Systemen ist das üblicherweise ein \n. Unter M$schrott ein \r\n.
    Im Falle von Filelisting können dir aber auch dubiose Dateinamen ein Schnippchen schlagen.
    In sochen Fällen hilft meist die Verwendung von \0 als Zeilentrenner.
    Das in Kombination mit find xargs und der Option -Z bei grep könnte helfen.
    Example:
    Finde alle Dateien mit der Endung ~ ->auch solche mit Leerzeilen und Zeilenumbrüchen in Dateinamen werden so richtig aufgelistet.

    find . -type f -printf "%f\0"|xargs -0 -n1|grep -Z '~$'

    Gruß Wolfgang
    Schau dir auchmal deine Einstellungen der verwendeten locale an.
    Wenn du dass auf POSIX setzt und es dann geht, bist du auf dem richtigen Weg der Ursachenforschung.
    man grep
    sagt dir mehr dazu.
    ;)
     
Thema:

egrep, grep, fgrep Problem

Die Seite wird geladen...

egrep, grep, fgrep Problem - Ähnliche Themen

  1. Rausfiltern mit egrep?

    Rausfiltern mit egrep?: hiho, habe mal wieder ein Problem. Habe ein Script welches mir ein Logfile auf Fehler überprüft. Leider erzeugt das Programm, welches die...
  2. durch welchen befehl bekomme ich bei egrep die Original Datei edtiert

    durch welchen befehl bekomme ich bei egrep die Original Datei edtiert: durch welchen befehl bekomme ich bei egrep die Original Datei edtiert? bei sed ist es ja: sed -i bei egrep auch möglich? Danke...
  3. egrep sed wie ersetzte ich ein : durch ein /

    egrep sed wie ersetzte ich ein : durch ein /: Hallo, habe folgendes Problem, wie ersetzte ich eine 1: ---> /1/ in einer bestimmten Datei? sed 's/:/ / /...
  4. egrep-Frage

    egrep-Frage: Hallo, ich habe Logfiles in folgendem Format: [01/09/2008 12 00:00:11] warning execution time 2 s Da die logfiles sehr groß sind brauche...
  5. Kommandosubstitution und egrep

    Kommandosubstitution und egrep: Hallo, ich bin auf einem debain-basierendem System mit der Shell (möglicherweise auch die dash, ist leider nicht mein Server) unterwegs Ich...