[[Vorlage(Getestet, bionic)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [https://laurikari.net/tre/about/ TRE] {en} ist eine Bibliothek zur "unscharfen" Suche mit regulären Ausdrücken. Unscharf heißt dabei, dass man nicht - wie bei regulären Ausdrücken üblich - nach exakten Treffen sucht (siehe [:grep:]), sondern eine einstellbare Fehleranzahl (=Unschärfe) zulässt. Fehler können dabei z.B. Buchstabendreher, fehlende Buchstaben etc. sein. Das auf der Bibliothek aufbauende Kommandozeilenprogramm tre-agrep macht diese Fähigkeiten praktisch nutzbar. Es arbeitet bei regulären Ausdrücken POSIX-konform, d.h. weder die GNU-Erweiterungen noch die Perl-Syntax werden unterstützt. = Installation = Das Programm ist in den Paketquellen enthalten und kann über das folgende Paket installiert werden[1]: {{{#!vorlage Paketinstallation tre-agrep, universe }}} = Benutzung = Die allgemeine Syntax des Programmaufrufs lautet[2]: {{{#!vorlage Befehl tre-agrep [OPTIONEN] MUSTER DATEI }}} `MUSTER` ist dabei das Suchmuster, mit dem die Datei `DATEI` durchsucht werden soll. Wird `DATEI` nicht angegeben, liest das Programm von der Standardeingabe. Das Programm kennt unter anderem die folgenden Optionen: {{{#!vorlage Tabelle <-2 rowclass="titel"> Optionen von tre-agrep +++ Option Erklärung +++ `-e AUSDRUCK`, `--regexp=AUSDRUCK` sucht nach dem (regulären) Ausdruck `AUSDRUCK` +++ `-i`, `--ignore-case` Groß- / Kleinschreibung wird ignoriert +++ `-w`, `--word-regexp` Der `AUSDRUCK` bei der Option `-e` muss exakt, also als allein stehendes Wort vorkommen, nicht als Wortteil +++ `-ANZAHL` Option für die "unscharfe" Suche. `ANZAHL` bestimmt, wie viele Fehler / Ungenauigkeiten bei den Suchtreffern vorkommen dürfen. }}} Eine komplette Übersicht über alle verfügbaren Optionen bietet die [:man:Manpage] von tre-agrep. == Beispiele == Die folgenden Beispiele beziehen sich alle auf diesen Text, der in der Datei '''tretest.txt''' gespeichert ist: {{{ ubuntuusers.de ist Teil der deutschsprachigen Ubuntu-Community. Es gibt bei ubuntusers.de ein Wiki. Das Forum von ubutnuuser.de bietet verschiedene Supportforen. Ikhaya bringt bei uubnutsuers.de News rund um Ubuntu. Außerdem bietet ubbuntuuuserde einen Planet, der Blogbeiträge zu Ubuntu sammelt. }}} Das Wort "ubuntuusers.de" ist dabei nur in der 1. Zeile korrekt geschrieben. Alle anderen Vorkommen haben ein bis vier Fehler. * Suche nach `ubuntuusers.de`: {{{#!vorlage Befehl tre-agrep ubuntuusers.de tretest.txt }}} {{{ ubuntuusers.de ist Teil der deutschsprachigen Ubuntu-Community. }}} * Suche nach `ubuntuusers.de` mit maximal drei Fehlern: {{{#!vorlage Befehl tre-agrep -3 ubuntuusers.de tretest.txt }}} {{{ ubuntuusers.de ist Teil der deutschsprachigen Ubuntu-Community. Es gibt bei ubuntusers.de ein Wiki. Das Forum von ubutnuuser.de bietet verschiedene Supportforen. }}} * Suche nach dem Ausdruck `ubuntu`: {{{#!vorlage Befehl tre-agrep -e ubuntu tretest.txt }}} {{{ ubuntuusers.de ist Teil der deutschsprachigen Ubuntu-Community. Es gibt bei ubuntusers.de ein Wiki. }}} Die 2. Zeile gehört zu den Treffern, weil `ubuntu` darin korrekt vorkommt. * Suche nach dem Ausdruck `ubuntu` mit zwei erlaubten Fehlern / Abweichungen: {{{#!vorlage Befehl tre-agrep -e ubuntu -2 tretest.txt }}} {{{ ubuntuusers.de ist Teil der deutschsprachigen Ubuntu-Community. Es gibt bei ubuntusers.de ein Wiki. Das Forum von ubutnuuser.de bietet verschiedene Supportforen. Ikhaya bringt bei uubnutsuers.de News rund um Ubuntu. Außerdem bietet ubbuntuuuserde einen Planet, der Blogbeiträge zu Ubuntu sammelt. }}} = Links = * [https://laurikari.net/tre/documentation/regex-syntax/ RegEx-Syntax] {en} von tre-agrep * [:Shell/Befehlsübersicht:] {Übersicht} Übersicht über verschiedene Shellbefehle #tag: Shell