LPIC101/103.7 Regulären Ausdrücke: Unterschied zwischen den Versionen

Aus Foxwiki
Benhoffmann (Diskussion | Beiträge)
Benhoffmann (Diskussion | Beiträge)
Zeile 33: Zeile 33:
* <code>.</code> wird als Platzhalter für ein beliebiges Zeichen verwendet
* <code>.</code> wird als Platzhalter für ein beliebiges Zeichen verwendet


S.152 - verwendung von grep
==Verwendung von grep==
* Der Filter grep bedeutet "Global search for Regular Expressions and Print out" (Sinngemäß: Globale Suche durch Reguläre Ausdrücke mit Ausgabe).
 
Hinweise für die Verwendung von grep:
* <code>-v</code> ist bei grep nicht verbose (Gesprächigkeit), sondern invertiert die Ausgabe (z.B. grep -v "Testwort" zeigt alle Zeilen ohne Testwort)
* <code>-E</code> aktiviert erweiterte reguläre Ausdrücke (entspricht dem Befehl egrep)
* <code>-i</code> ignoriert Groß- & Kleinschreibung
 
Beispiele für Verwendung von grep
* <code>grep [Ww]ill[iy] Adressliste</code> – sucht in der Datei Adressliste nach Willi,willi,Willy und willy. (grep -i Will[iy] liefert das gleiche Ergebnis, ignoriert jedoch auch die Groß- & Kleinschreibung von den anderen Buchstaben)
* <code>grep W.lly Adressliste</code> – der Punkt ersetzt ein beliebiges Zeichen, somit würden Willy, Wally usw. gefunden werden, sofern diese existieren.
* <code>archangel:~ # grep -v ^[#] /etc/config.conf</code>oder Alternativ <code>archangel:~ # grep ^[^#] /etc/config.conf</code> – findet alle Zeilenanfänge, welche nicht mit einer Raute beginnen


---
==Kontrollfragen==
==Kontrollfragen==
Wonach sucht RegEx <code>^[^#]</code>
Wonach sucht RegEx <code>^[^#]</code>

Version vom 5. Dezember 2019, 13:13 Uhr

Wichtung : 3

Begriffsklärung

  • Reguläre Ausdrücke erleichtern das durchsuchen von Texten
  • Sie beschreiben anhand von Wildcards, Suchwörtern und Positionsangaben und ermöglichen so eine differenziertere Suche
  • Wildcards werden auch Jokerzeichen genannt und sind Platzhalter für ein oder mehrere Zeichen
  • Reguläre Ausdrücke werden in englisch Regular Expressions genannt
  • Reguläre Ausdrücke werden meist mit RegEx oder RegExp abgekürzt

Wo kann man reguläre Ausdrücke verwenden

  • Mit dem Filter "grep" in der Shell
  • Mit dem Vi-Editor in der Shell
  • Im Kate Editor (Option {} aktivieren im Suchen Fenster)
  • In vielen weiteren Programmen

Gültige Metazeichen

Metazeichen beschreiben die Position einer Suchanfrage. Gültige Metazeichen sind :

  • ^ Textanker für Zeilenanfang
  • $ Textanker für Zeilenende
  • \< markiert einen Wortanfang
  • \> markiert ein Wortende
  • \ schützt ein Zeichen vor der Interpretation (z.B. /$ sucht nach Dollarzeichen und nimmt diesen seine Spezialbedeutung)
  • [] sucht nach einem Zeichen oder einer Zeichenfolge innerhalb des eckig geklammerten Bereichs (z.B. [a-g] )
  • [^Zeichen] Schließt das Zeichen nach dem Circonflex aus der Suche aus

Wildcards (Joker)

  • * bezeichnet keine oder beliebig viele Wiederholungen des vorangegangenen Zeichens
  • ? bezeichnet keine oder eine Wiederholung des vorangegangenen Zeichens
  • + bezeichnet, dass das voranstehende Zeichen mindestens einmal vorkommt
  • . wird als Platzhalter für ein beliebiges Zeichen verwendet

Verwendung von grep

  • Der Filter grep bedeutet "Global search for Regular Expressions and Print out" (Sinngemäß: Globale Suche durch Reguläre Ausdrücke mit Ausgabe).

Hinweise für die Verwendung von grep:

  • -v ist bei grep nicht verbose (Gesprächigkeit), sondern invertiert die Ausgabe (z.B. grep -v "Testwort" zeigt alle Zeilen ohne Testwort)
  • -E aktiviert erweiterte reguläre Ausdrücke (entspricht dem Befehl egrep)
  • -i ignoriert Groß- & Kleinschreibung

Beispiele für Verwendung von grep

  • grep [Ww]ill[iy] Adressliste – sucht in der Datei Adressliste nach Willi,willi,Willy und willy. (grep -i Will[iy] liefert das gleiche Ergebnis, ignoriert jedoch auch die Groß- & Kleinschreibung von den anderen Buchstaben)
  • grep W.lly Adressliste – der Punkt ersetzt ein beliebiges Zeichen, somit würden Willy, Wally usw. gefunden werden, sofern diese existieren.
  • archangel:~ # grep -v ^[#] /etc/config.confoder Alternativ archangel:~ # grep ^[^#] /etc/config.conf – findet alle Zeilenanfänge, welche nicht mit einer Raute beginnen

Kontrollfragen

Wonach sucht RegEx ^[^#] Antwort : Nach einem Zeilenanfang ohne Raute

Sie geben in der Shell ls a* ein. Was erhalten Sie als Antwort? Antwort : Alle Dateien im aktuellen Verzeichnis, welche mit a anfangen.

Sie geben in der Kate-Suche mit regulären Ausdrücken a* ein, was erhalten Sie als Antwort?