grep / egrep auf das Zeilenende?

Dieses Thema im Forum "Linux OS" wurde erstellt von KBfly, 05.04.2007.

  1. KBfly

    KBfly Grünschnabel

    Dabei seit:
    30.03.2007
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo,

    ich muß per shell script text files untersuchern. hierbei ist der zeilenanfang (^..xyz) und das
    zeilenende ($ ...???aber wie) wichtig zu filtern.
    zeilenanfang mit ^ klappt.
    zeilenende mit $ klappt nicht. so wie i.d. man page beschrieben?
    was mache ich nur falsch?
    ich nutze SuSE10.1
    Beispiel: ^..'0001|0002' .... für den Zeilenanfang
    aber fallse die letzten Stellen (10008749) Null sind dann...
    0100010271720131843900000000000000000000040420071016512050000049750000001000000001560000000000000000015601Molesk
    ine 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000010008749

    Danke für die Hilfe!

    Karsten
     
  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 supersucker, 05.04.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Häh?

    Poste mal eine ordentlich formattiertes Beispiel wie deine Eingabe aussieht, wie die Ausgabe aussehen soll und welchen grep-Aufruf du verwendest.

    Dann sehen wir weiter.
     
  4. KBfly

    KBfly Grünschnabel

    Dabei seit:
    30.03.2007
    Beiträge:
    2
    Zustimmungen:
    0
    ... habe eine mögliche Ursache selber rausgefunden. Die Datei scheint keine "echte reine" Unix Datei zu sein (DosZeilenende). Jedenfalls wenn ich sie nach unix konvertiere, dann gehts. Man sieht es auch am Zeilenende. Nun kann grep /egrep laut manpages auch dos Dateien durchsuchen, irgendwie geht es aber nicht.

    zur Zeit habe ich es so gemacht, es ist sicher nicht gerade toll:
    cat $EXP/$EXPDATNAME | egrep ^..'0471|0003' | egrep "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" > $EXP/filter.as

    $ ... sind Variablen, wo Verzeichnisse bzw. Dateinamen stehen. Eigentlich will ich nach der letzten Verkettung nur die letzten 8 Nullen überprüfen. Die derzeitige Art garantiert mir nur den Erfolg. Aber wie gesagt, die gelieferte Datei $EXPDATNAME hat DOS Zeilenende!

    viele Grüße, Karsten
     
  5. #4 Wolfgang, 10.04.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Deine Angaben sind wirklich etwas unübersichtlich.
    Bitte benutze doch code Tags, dann sieht das schon übersichtlicher aus.

    Zu grep:
    grep kann auch mit Dos-Dateien umgehen, jedoch musst du die Bedingung entsprechend anpassen.
    Ein Dosfile hat als Zeilenende CR-LF.
    Eine Unixdatei LF
    Das bedeutet, wenn du nach einem Zeichen am Ende suchst, dann steht in einer Dosdaei noch diese CR oder auch \r dazwischen.
    Ergo trifft das Matching nicht.
    Würdest du nun nach einem Zeichen gefolgt von \r am Ende suchen, sollte es klappen.

    Gruß Wolfgang
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

grep / egrep auf das Zeilenende?

Die Seite wird geladen...

grep / egrep auf das Zeilenende? - Ä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...