RegExp-Kurs_04.sh
von tegula- SNIPPET_DESC:
- Bitte Dateinamensendung ".txt" entfernen
- SNIPPET_CREATION_TIME:
- 01.05.2022 17:11:18
- SNIPPET_PRUNE_TIME:
- Unendlich
- SNIPPET_TEXT:
-
- #!/bin/sh
- #' ---
- #' title: "Lösungsversuch zum RegEXP-Kurs im Debianforum"
- #' author: "tegula"
- #' date: " 01 05 2022"
- #' output: html_document
- #' ---
- #' ------------------------
- #' ------------------------
- #' **Kurs-Teil:** 04 - Konkatenation, Alternation, Unterausdruecke
- #' **URL:** https://debianforum.de/forum/viewtopic.php?t=184095
- # ------------------------
- # ------------------------
- #' ------------------------
- #' ------------------------
- # Aufgabe 1) Schreibe einen egrep-Ausdruck, der sowohl eine Alternation enthaelt als auch das Pipezeichen literal matcht und wende ihn auf einen dazu passenden Eingabetext an.
- ## "Reiter" oder "|Läufer"
- egrep --line-number "Reiter|\|Läufer" schwaebische-kunde.txt
- #' ------------------------
- #' ------------------------
- # Aufgabe 2) Finde ein inhaltlich sinnvolles Beispiel fuer eine zwei- oder dreifach verschachtelte Alternation. ;-)
- egrep --line-number "Reit(er|ar)" schwaebische-kunde.txt
- #' ------------------------
- #' ------------------------
- # Aufgabe 3) Schreibe einen egrep-Ausdruck (nur mit Alternation und Unterausdruecken), um die Schreibweisen Maier, Meier, Mayer, Meier zu matchen.
- cat a3.txt
- printf "\n"
- egrep --line-number "M(a|e)(i|y)er" a3.txt
- #' ------------------------
- #' ------------------------
- # Aufgabe 4) Ergaenze (3) um die Schreibeweise Myer.
- cat a4.txt
- printf "\n"
- egrep --line-number "M(a|e)(i|y)er|Myer" a4.txt
- #' ------------------------
- #' ------------------------
- # Aufgabe 5) Finde alternative Ausdruecke fuer (3) und (4) (ohne andere RE-Operatoren zu verwenden, sondern nur indem du anders gruppierst).
- egrep --line-number "Maier|Meier|Mayer|Meier" a3.txt
- printf("\n")
- egrep --line-number "Maier|Meier|Mayer|Meier|Myer" a4.txt
- #' ------------------------
- #' ------------------------
- # Aufgabe 6) Versuche diese Aufgaben auch mit fgrep umzusetzen. Was sind deine Erkenntnisse?
- ## ... zu Aufgabe 1:
- ### Musterdatei erzeugen
- printf "Reiter\n|Läufer" > muster_a1.txt
- # nach Mustern suchen
- fgrep -f muster_a1.txt schwaebische-kunde.txt
- ## ... zu Aufgabe 2:
- ### Musterdatei erzeugen
- printf "Reiter\nReitar" > muster_a2.txt
- ### Nach Mustern suchen
- fgrep -f muster_a2.txt schwaebische-kunde.txt
- ## ... zu Aufgabe 3:
- ### Musterdatei erzeugen
- printf "Maier\nMeier\nMayer\nMeier" > muster_a3.txt
- ### Nach Mustern suchen
- fgrep -f muster_a3.txt a3.txt
- ## ... zu Aufgabe 4:
- ### Musterdatei erzeugen
- printf "Maier\nMeier\nMayer\nMeier\nMyer" > muster_a4.txt
- ### Nach Mustern suchen
- fgrep -f muster_a4.txt a4.txt
- ## ... zu Aufgabe 5:
- ### --> **Erkenntnis:** Gruppiertung ist nicht möglich, da fgrep nur feste Suchmuster unterstützt (?).
- #' ------------------------
- #' ------------------------
- # Aufgabe 7) Braucht man runde Klammern um den gesamten Ausdruck wenn man eine Alternation (auf oberster Ebene) verwendet?
- #' **ANTWORT:** Nein (vgl. Lösungsansatz zu Aufgabe 5).
- #' ' ------------------------
- #' ------------------------
- #' [ENDE]
Quellcode
Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN