Anzeige:
Ergebnis 1 bis 8 von 8

Thema: grep mit Regulären Ausdrücken - regex

  1. #1
    Registrierter Benutzer
    Registriert seit
    Mar 2001
    Ort
    Innsbruck, Österreich
    Beiträge
    91

    Question grep mit Regulären Ausdrücken - regex

    Für eine Prüfung müssen wir (am Rande) auch mit Regulären Ausdrücken arbeiten. In der Vorbereitung haben wir folgende Aufgabe bekommen:

    Überlegen Sie, welche Zeichenfolgen durch die nachstehenden grep-Aufrufe mit regulären Ausdrücken als Treffer erkannt werden könnten. Beschreiben Sie möglichst exakt, wie eine Zeile innerhalb der Datei aufgebaut sein müsste, damit sie von dem betreffenden grep- Kommando als Treffer gefunden wird

    Code:
    a)
    grep '^U..' datei
    
    b)
    grep '^[A-Z]' datei
    
    c)
    grep '^[A-Z].*' datei
    
    d)
    grep '^[A-Z].*\.c$' datei
    
    e)
    grep '^[0-9A-Fa-f][0-9A-Fa-f]*$' datei

  2. #2
    Registrierter Benutzer
    Registriert seit
    Mar 2001
    Ort
    Innsbruck, Österreich
    Beiträge
    91
    Also a) kann ich noch beantworten:
    Gibt alle Zeilen aus, die mit dem Großbuchstaben U beginnen, und noch weitere 2 beliebige Zeichen in der Zeile vorhanden sind.

    b) gibt alle Zeilen aus, die mit einem Großbuchstaben zwischen A und Z beginnen

  3. #3
    Registrierter Benutzer
    Registriert seit
    Mar 2001
    Ort
    Innsbruck, Österreich
    Beiträge
    91
    c) müsste doch dasselbe sein wie b) , oder

  4. #4
    Who's Johnny? Avatar von L00NIX
    Registriert seit
    Mar 2004
    Beiträge
    1.229
    Zitat Zitat von wotuzu17 Beitrag anzeigen
    c) müsste doch dasselbe sein wie b) , oder
    Ja, ergibt die gleiche Ausgabe.

  5. #5
    Linuxer Avatar von HBtux
    Registriert seit
    Oct 2009
    Ort
    $HOME
    Beiträge
    315
    d) gibt alle Zeilen aus, mit A bis Z am Zeilenanfang und ".c" am Zeilenende.
    "^" steht für Zeilenanfang
    "$" für Zeilenende

    e) man sollte erst Meinen - gibt alle Zeilen aus....
    - die mit 0 bis 9 oder A bis F oder a bis f am Zeilenanfang beginnen.
    - das zweite Zeichen sollte auch 0 bis 9 oder A bis F oder a bis f sein.
    (dafür müsste es aber grep '^[0-9A-Fa-f][0-9A-Fa-f].*$' Datei heißen)
    In Deinem Beispiel weiß ich auch nicht genau.
    Anscheinend ist es ein Unterschied ".*" oder "*" anzugeben.


    legt Dir mal die folgende Datei mit dem Namen "datei" an und probiere doch selber ein bischen rum....
    Code:
    Aberhallo.txt
    aberhallo.txt
    ZweiteDatei.c
    zweitedatei.c
    zweitedatei.C
    3teDatei.c
    3teDatei.txt
    ABCDE.test
    A5678.test
    aDatei.test
    Adatei.test
    aZZZZZ.test
    VorletzteDatei.c
    UndDieLetzteDatei.c
    Viele Grüße
    HBtux

  6. #6
    Registrierter Benutzer
    Registriert seit
    Mar 2001
    Ort
    Innsbruck, Österreich
    Beiträge
    91
    Danke für die Antworten!

    Ich denke bei e)
    muss die Zeile mit A-D oder a-d oder 0-9 beginnen
    danach kann entweder keines oder beliebig viele Zeichen der Menge A-D oder a-d oder 0-9 folgen

    Die Angabe .* bedeutet keines oder beliebig viele beliebige Zeichen

  7. #7
    Who's Johnny? Avatar von L00NIX
    Registriert seit
    Mar 2004
    Beiträge
    1.229
    Zitat Zitat von wotuzu17 Beitrag anzeigen
    Ich denke bei e)
    muss die Zeile mit A-D oder a-d oder 0-9 beginnen
    danach kann entweder keines oder beliebig viele Zeichen der Menge A-D oder a-d oder 0-9 folgen
    Hexadezimale Zahlen bestehen aus den Ziffern 0 bis 9 und den Buchstaben a, b, c, d, e und f (groß wie klein). Also soll e) alle Zeilen ausgeben, die solche Zahlen, und nur solche Zahlen, aber mit beliebig vielen Stellen enthalten.

    Kleine Anmerkung am Rande:
    Die hier verwendeten Konstrukte wie z.B. [A-Z] sind abhängig vom eingestellten Locale (Umgebungsvaraible LANG) und kann somit durchaus auch andere oder gar keine Ergebnisse liefern. Für Buchstaben [A-Za-z], [A-Z], [a-z] und Ziffern [0-9] gibt es die Pseudoklassen [:alpha:], [:upper:], [:lower:] und [:digit:], die nicht vom Locale abhängen.

    Gruß
    L00NIX
    Geändert von L00NIX (10.01.10 um 20:16 Uhr)

  8. #8
    Registrierter Benutzer
    Registriert seit
    Mar 2001
    Ort
    Innsbruck, Österreich
    Beiträge
    91
    Hexadezimale Zahlen bestehen aus den Ziffern 0 bis 9 und den Buchstaben a, b, c, d, e und f (groß wie klein). Also soll e) alle Zeilen ausgeben, die solche Zahlen, und nur solche Zahlen, aber mit beliebig vielen Stellen ausgeben.
    Richtig, damit macht das Beispiel auch irgendwie Sinn. Hab mich schon gefragt wieso uns der Professor solch bescheuerte Beispiele gibt.

Ähnliche Themen

  1. Log-Skript: Suche nach Datum
    Von audience im Forum Linux als Server
    Antworten: 10
    Letzter Beitrag: 06.08.09, 13:27
  2. (LFS) Der Anfang :)
    Von HellTron im Forum Kompilieren von Kernel und Sourcen
    Antworten: 92
    Letzter Beitrag: 15.07.06, 10:56
  3. Antworten: 2
    Letzter Beitrag: 19.04.05, 11:32
  4. lmsensors
    Von ncoder im Forum System installieren und konfigurieren
    Antworten: 22
    Letzter Beitrag: 20.04.03, 11:00
  5. i2c-2.7.0 kompilieren
    Von skatetrash13 im Forum Kompilieren von Kernel und Sourcen
    Antworten: 11
    Letzter Beitrag: 17.03.03, 11:01

Lesezeichen

Berechtigungen

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