[[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
+++
<rowclass="kopf">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