$ #!/bin/sh $ # --- $ # Titel : Lösungsversuch zum RegEXP-Kurs im Debianforum - Pascal, Aufgabe 3 ( https:#debianforum.de/forum/viewtopic.php?p=1304497#p1304497 ) $ # Autor des Shell-Scripts: tegula $ # Autor des vom Shellscript aufgerufenen Pascal-Programms : TuxPeter ( https://nopaste.debianforum.de/41757 ) $ # --- $ $ # ------------------------- $ # ------------------------- $ $ # Aufgabe 1.1: "Finde alle Auslassungszeicheichen". $ cat muster_a3.txt ("|'|?|?|-|?|?|~) $ ./'Pascal_prog zu RegEx_3' $(cat muster_a3.txt) schwaebische-kunde.txt 2 4 ' 5 ' 8 ' 11 ' 12 ' 17 ' 18 ' 25 ' 34 ' 45 '_' 47 ' 51 ' 53 " 54 '_" 55 ' 56 " 58 " $ $ # ------------------------- $ # ------------------------- $ $ # Aufgabe 1.2: "alle Auslassungszeichen die einem b folgen, das b selber aber nicht." $ cat muster_a3.2.txt b("|'|?|?|-|?|?|~) $ ./'Pascal_prog zu RegEx_3' $(cat muster_a3.2.txt) schwaebische-kunde.txt 2 8 ' $ $ # Aufgabe 1.3: "jetzt mal etwas pfiffiger: Zeige alle Sätze, die den Buchstaben D enthalten (groß oder klein egal) bis genau zum ersten Vorkommen und einschließlich dieses Zeichens". $ ./'Pascal_prog zu RegEx_3' '(.*[Dd])' schwaebische-kunde.txt 1 Schwaebische Kund 2 4 Zum heil'gen Land 5 Da musst' er mit d 6 Durch ein Gebirge, wuest und 7 D 8 Viel Steine gab's und 9 Und mancher d 10 Hat dort d 11 Den Pferd 12 Fast musst' der Reiter d 13 Nun war ein Herr aus Schwabenland 14 Von hohem Wuchs und starker Hand 15 Dess Roesslein war so krank und 18 Und kostet's ihn d 19 So blieb er bald 20 Hinter d 21 Da sprengten ploetzlich in d 22 Fuenfzig tuerkische Reiter d 23 D 24 Nach ihm zu werfen mit d 25 D 27 Liess sich den Schild 28 Und 29 Bis Einer, dem d 30 Auf ihn d 31 Da wallt dem D 32 Er trifft des Tuerken Pferd 34 Die beiden Vord 35 Als er d 36 Da fasst er erst sein Schwerd 37 Er schwingt es auf d 38 Haut durch bis auf d 39 Haut auch d 40 Und tief noch in des Pferd 43 Da packt die And 45 Und Jedem ist's, als wuerd 46 Durch Kopf und Leib hind 47 Drauf kam d 48 D 49 Die sahen nun mit gutem Bed 50 Was Arbeit unser Held 51 Von denen hat's d 52 Der liess d 55 Der Held bed 56 "Die Streiche sind 57 Sie sind $ $ # Aufgabe 1.4: "zeige alle Wörter einzeln unter Verwendung der Zeichenklasse \w, was dem [:alpha:] im egrep entspricht." $ ./'Pascal_prog zu RegEx_3' '\b(\w*)\b' schwaebische-kunde.txt 1 Schwaebische__Kunde_ 2 3 Als__Kaiser__Rothbart__lobesam_ 4 Zum__heil__gen__Land__gezogen__kam_ 5 Da__musst__er__mit__dem__frommen__Heer_ 6 Durch__ein__Gebirge__wuest__und__leer_ 7 Daselbst__erhub__sich__grosse__Noth_ 8 Viel__Steine__gab__s__und__wenig__Brot_ 9 Und__mancher__deutsche__Reitersmann_ 10 Hat__dort__den__Trunk__sich__abgethan_ 11 Den__Pferden__war__s__so__schwach__im__Magen_ 12 Fast__musst__der__Reiter__die__Maehre__tragen_ 13 Nun__war__ein__Herr__aus__Schwabenland_ 14 Von__hohem__Wuchs__und__starker__Hand_ 15 Dess__Roesslein__war__so__krank__und__schwach_ 16 Er__zog__es__nur__am__Zaume__nach_ 17 Er__haett__es__nimmer__aufgegeben_ 18 Und__kostet__s__ihn__das__eigne__Leben_ 19 So__blieb__er__bald__ein__gutes__Stueck_ 20 Hinter__dem__Heereszug__zurueck_ 21 Da__sprengten__ploetzlich__in__die__Queer_ 22 Fuenfzig__tuerkische__Reiter__daher_ 23 Die__huben__an__auf__ihn__zu__schiessen_ 24 Nach__ihm__zu__werfen__mit__den__Spiessen_ 25 Der__wackre__Schwabe__forcht__sich__nit_ 26 Ging__seines__Weges__Schritt__vor__Schritt_ 27 Liess__sich__den__Schild__mit__Pfeilen__spicken_ 28 Und__thaet__nur__spoettlich__um__sich__blicken_ 29 Bis__Einer__dem__die__Zeit__zu__lang_ 30 Auf__ihn__den__krummen__Saebel__schwang_ 31 Da__wallt__dem__Deutschen__auch__sein__Blut_ 32 Er__trifft__des__Tuerken__Pferd__so__gut_ 33 Er__haut__ihm__ab__mit__Einem__Streich_ 34 Die__beiden__Vorderfuess__zugleich_ 35 Als__er__das__Thier__zu__Fall__gebracht_ 36 Da__fasst__er__erst__sein__Schwerdt__mit__Macht_ 37 Er__schwingt__es__auf__des__Reiters__Kopf_ 38 Haut__durch__bis__auf__den__Sattelknopf_ 39 Haut__auch__den__Sattel__noch__zu__Stuecken_ 40 Und__tief__noch__in__des__Pferdes__Ruecken_ 41 Zur__Rechten__sieht__man__wie__zur__Linken_ 42 Einen__halben__Tuerken__heruntersinken_ 43 Da__packt__die__Andern__kalter__Graus_ 44 Sie__fliehen__in__alle__Welt__hinaus_ 45 Und__Jedem__ist__s__als__wuerd__ihm__mitten_ 46 Durch__Kopf__und__Leib__hindurchgeschnitten_ 47 Drauf__kam__des__Wegs__ne__Christenschaar_ 48 Die__auch__zurueck__geblieben__war_ 49 Die__sahen__nun__mit__gutem__Bedacht_ 50 Was__Arbeit__unser__Held__gemacht_ 51 Von__denen__hat__s__der__Kaiser__vernommen_ 52 Der__liess__den__Schwaben__vor__sich__kommen_ 53 Er__sprach__Sagt__an__mein__Ritter__werth_ 54 Wer__hat__Euch__solche__Streich__gelehrt_ 55 Der__Held__bedacht__sich__nicht__zu__lang_ 56 Die__Streiche__sind__bei__uns__im__Schwang_ 57 Sie__sind__bekannt__im__ganzen__Reiche_ 58 Man__nennt__sie__halt__nur__Schwabenstreiche_ $ $ # Aufgabe 1.5: "zeige alle Sonderzeichen und vergleiche "^\w" mit "\W". $ ## ^\w $ ./'Pascal_prog zu RegEx_3' '([^\w])' schwaebische-kunde.txt 1 _. 2 3 _ _ 4 _'_ _ _ _, 5 _'_ _ _ _ _ 6 _ _,_ _ _ _. 7 _ _ _ _, 8 _ _'_ _ _ _, 9 _ _ 10 _ _ _ _ _. 11 _ _'_ _ _ _ _, 12 _'_ _ _ _ _ _. 13 _ _ _ _ _, 14 _ _ _ _ _, 15 _ _ _ _ _ _, 16 _ _ _ _ _ _, 17 _'_ _ _ 18 _'_ _ _ _ _. 19 _ _ _ _ _ 20 _ _ _, 21 _ _ _ _ 22 _ _ _, 23 _ _,_ _ _ _ _, 24 _ _ _ _ _ _. 25 _ _ _'_ _ _, 26 _ _ _ _ _, 27 _ _ _ _ _ 28 _ _ _ _ _ _, 29 _,_ _ _ _ _ _, 30 _ _ _ _ _. 31 _ _ _ _ _ _, 32 _ _ _ _ _ _, 33 _ _ _ _ _ 34 _ _'_ _. 35 _ _ _ _ _ _, 36 _ _ _ _ _ _ _, 37 _ _ _ _ _ _, 38 _ _ _ _ _, 39 _ _ _ _ _ 40 _ _ _ _ _ _; 41 _ _ _,_ _ _ _, 42 _ _ _. 43 _ _ _ _ _, 44 _ _ _ _ _, 45 _ _'_,_ _ _'_ _ 46 _ _ _ _. 47 _ _ _ _'_ _, 48 _ _ _ _, 49 _ _ _ _ 50 _ _ _ _. 51 _ _'_ _ _ _, 52 _ _ _ _ _ _, 53 _:_ _"_ _,_ _ _ _! 54 _ _ _ _'_ _?_" 55 _ _'_ _ _ _ _: 56 "_ _ _ _ _ _ _, 57 _ _ _ _ _, 58 _ _ _ _ _._" $ # \W $ ./'Pascal_prog zu RegEx_3' '(\W)' schwaebische-kunde.txt 1 _. 2 3 _ _ 4 _'_ _ _ _, 5 _'_ _ _ _ _ 6 _ _,_ _ _ _. 7 _ _ _ _, 8 _ _'_ _ _ _, 9 _ _ 10 _ _ _ _ _. 11 _ _'_ _ _ _ _, 12 _'_ _ _ _ _ _. 13 _ _ _ _ _, 14 _ _ _ _ _, 15 _ _ _ _ _ _, 16 _ _ _ _ _ _, 17 _'_ _ _ 18 _'_ _ _ _ _. 19 _ _ _ _ _ 20 _ _ _, 21 _ _ _ _ 22 _ _ _, 23 _ _,_ _ _ _ _, 24 _ _ _ _ _ _. 25 _ _ _'_ _ _, 26 _ _ _ _ _, 27 _ _ _ _ _ 28 _ _ _ _ _ _, 29 _,_ _ _ _ _ _, 30 _ _ _ _ _. 31 _ _ _ _ _ _, 32 _ _ _ _ _ _, 33 _ _ _ _ _ 34 _ _'_ _. 35 _ _ _ _ _ _, 36 _ _ _ _ _ _ _, 37 _ _ _ _ _ _, 38 _ _ _ _ _, 39 _ _ _ _ _ 40 _ _ _ _ _ _; 41 _ _ _,_ _ _ _, 42 _ _ _. 43 _ _ _ _ _, 44 _ _ _ _ _, 45 _ _'_,_ _ _'_ _ 46 _ _ _ _. 47 _ _ _ _'_ _, 48 _ _ _ _, 49 _ _ _ _ 50 _ _ _ _. 51 _ _'_ _ _ _, 52 _ _ _ _ _ _, 53 _:_ _"_ _,_ _ _ _! 54 _ _ _ _'_ _?_" 55 _ _'_ _ _ _ _: 56 "_ _ _ _ _ _ _, 57 _ _ _ _ _, 58 _ _ _ _ _._" $