LPIC101/103.7 Regulären Ausdrücke: Unterschied zwischen den Versionen
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 | ||
==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.conf
oder Alternativarchangel:~ # 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?