{"id":1319,"date":"2024-06-26T08:00:00","date_gmt":"2024-06-26T06:00:00","guid":{"rendered":"https:\/\/www.fuhselab.de\/?p=1319"},"modified":"2025-05-27T13:33:56","modified_gmt":"2025-05-27T11:33:56","slug":"regulaere-ausdruecke","status":"publish","type":"post","link":"https:\/\/www.fuhselab.de\/index.php\/2024\/06\/26\/regulaere-ausdruecke\/","title":{"rendered":"Regul\u00e4re Ausdr\u00fccke"},"content":{"rendered":"\n<p>In diesem Artikel geht es um \u201cregul\u00e4re Ausdr\u00fccke\u201c. Statt hier jetzt viele Worte f\u00fcr eine Beschreibung zu verlieren was sich hinter diesem Begriff verbirgt, schauen wir besser direkt einige Praxisbeispiele an\u2026<\/p>\n\n\n\n<!--more-->\n\n\n\n<p><strong>Zirkumflex und Dollarzeichen:<\/strong><\/p>\n\n\n\n<p>F\u00fcr die folgenden Experimente erzeugen wir eine Datei mit dem Namen \u201cstory.txt\u201c mit folgendem Text:<\/p>\n\n\n\n<p>Zeile 1 = Dornr\u00f6schen war eine Prinzessin.<\/p>\n\n\n\n<p>Zeile 2 = H\u00e4nsel war der Bruder von Gretel.<\/p>\n\n\n\n<p>Jetzt \u00f6ffnen wir ein Terminal und nutzen folgenden Befehl:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>grep ^Dornr\u00f6schen story.txt<\/li>\n<\/ul>\n\n\n\n<p>Das Zeichen Zirkumflex findet sich \u00fcbrigens links neben der Eins und danach bitte auch einmal auf die Leertaste hauen (oder sanft dr\u00fccken geht auch \ud83d\ude42 Der regul\u00e4re Ausdruck den wir hier genutzt haben, passt nur am Satzanfang. In unserer Datei steht \u201cDornr\u00f6schen\u201c ja auch am Anfang. Suchen wir doch jetzt mal nach \u201cGretel\u201c\u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>grep ^Gretel story.txt<\/li>\n<\/ul>\n\n\n\n<p>Anders als beim ersten Beispiel wird jetzt nichts ausgegeben. Zirkumflex sucht also immer am Satzanfang nach einem Wort. Per Dollarzeichen wird am Satzende gesucht.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>grep Gretel $ story.txt<\/li>\n<\/ul>\n\n\n\n<p>Obwohl in meinen Experimenten im Terminal erst eine Fehlermeldung ausgegeben wird (Datei oder Verzeichnis nicht gefunden) wird die richtige Zeile dann doch gefunden und das Suchwort (hier also Gretel) hervorgehoben.<\/p>\n\n\n\n<p><strong>Sternchen f\u00fcr den regul\u00e4ren Ausdruck:<\/strong><\/p>\n\n\n\n<p>Nun erg\u00e4nzen wir in unserer Datei wie folgt:<\/p>\n\n\n\n<p>Zeile 3 = Gretel mag gerne Lebkuchen.<\/p>\n\n\n\n<p>Im Terminal suchen wir jetzt nochmal nach Gretel mit folgendem Befehl:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>grep Gretel* story.txt<\/li>\n<\/ul>\n\n\n\n<p>Nun werden beide Zeilen die das Wort Gretel enthalten angezeigt und genau so sollte es sein.<\/p>\n\n\n\n<p><strong>Wortsuche in Dateien:<\/strong><\/p>\n\n\n\n<p>Nat\u00fcrlich kann grep auch f\u00fcr eine Wortsuche in der Datei genutzt werden \u2013 egal wo das Wort steht.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>grep H\u00e4nsel story.txt<\/li>\n\n\n\n<li>grep war story.txt<\/li>\n<\/ul>\n\n\n\n<p>Das zweite Beispiel findet die Zeilen in denen das Wort \u201cwar\u201c vorkommt. Die Suche ohne Dateinamen f\u00fchrt dazu, dass sich grep auf die Standard-Eingabe bezieht und das ist im Normalfall die Tastatur. Das Suchwort m\u00fcsste also eingetippt werden und dann w\u00fcrde es grep auch finden.<\/p>\n\n\n\n<p><strong>Zur\u00fcck zur Eingabeaufforderung:<\/strong><\/p>\n\n\n\n<p>Nachdem letzten Experiment bleibt man im grep Programm h\u00e4ngen. Zur\u00fcck zur Eingabeaufforderung geht es mit der Tastenkombination \u201cSteuerung\u201c und \u201cC\u201c.<\/p>\n\n\n\n<p><strong>Wortsuche in Dateien \u2013 Teil 2:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>grep \u201a\\Dornr\u00f6schen war\u2018 story.txt<\/li>\n<\/ul>\n\n\n\n<p>So geht es auch. Gefunden wird jetzt nicht der Satz \u201cDornr\u00f6schen ist eine Prinzessin\u201c. Wer diesen Satz in die Textdatei einf\u00fcgt wird es merken. Es wird nur der Satz mit \u201cDornr\u00f6schen war\u201c gefunden und angezeigt\u2026 F\u00fcr einen ersten kleinen Einstieg in das Themenfeld Regul\u00e4re Ausdr\u00fccke soll es das gewesen sein. Alles weitere (vielleicht) in einem sp\u00e4teren Artikel.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Artikel geht es um \u201cregul\u00e4re Ausdr\u00fccke\u201c. Statt hier jetzt viele Worte f\u00fcr eine Beschreibung zu verlieren was sich hinter diesem Begriff verbirgt, schauen wir besser direkt einige Praxisbeispiele an\u2026<\/p>\n","protected":false},"author":1,"featured_media":791,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[21],"class_list":["post-1319","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-linux-gruppe-peine"],"_links":{"self":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1319","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/comments?post=1319"}],"version-history":[{"count":4,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1319\/revisions"}],"predecessor-version":[{"id":2800,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1319\/revisions\/2800"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media\/791"}],"wp:attachment":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media?parent=1319"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/categories?post=1319"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/tags?post=1319"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}