[Trennmuster] neues Skript patgen-list-diff.sh

Stephan Hennig mailing_list at arcor.de
Mo Mai 28 11:30:09 CEST 2012


Am 18.04.2012 18:41, schrieb Stephan Hennig:

> ich habe ein neues Skript patgen-list-diff.sh ins Repositorium geladen,
> welches Differenzen der Eingabelisten für Patgen zwischen einem
> angegebenen Commit und "master" erstellt.  Die Resultate werden als
> <commit>.diff in den entsprechenden Verzeichnissen dehyph*-x/ abgelegt.

Die DIFF-Dateien werden jetzt durch ein weiteres AWK-Skript
patgen-list-diff.awk zerlegt in Dateien, die die jeweils

  * hinzugefügten,
  * entfernten,
  * trennungskorrigierten und
  * klein-/großschreibungskorrigierten

Wörter enthalten.  Die Ausgabedateien haben die Endungen .added,
.removed, .hyph und .case.  Das AWK-Skript wird von patgen-list-diff.sh
automatisch aufgerufen.

Viele Grüße,
Stephan Hennig

FTR:

Zwei Klippen musste ich in dem gawk, welches in Git for Windows
enthalten ist, umschiffen:

Sortierung

Die Funktion asort() existiert in gawk v3.0.4 nicht.  Ich werde bei
Gelegenheit die Entwickler von Git for Windows informieren (Msys hat
übrigens gawk v3.1.7).  Die Ausgabedateien werden daher nachträglich per
Shell-Aufruf sortiert.  Der Log-Eintrag zu 6a91f44f31 ist jedoch falsch.
 Die GnuWin32-Utilities haben gawk v3.1.6, welches asort() kennt.  (Was
für ein Durcheinander!)

Groß-/Kleinschreibung

Um zu unterscheiden, ob ein Wort hinzugefügt oder entfernt wurde oder ob
die Trennung korrigiert wurde oder nur die Groß-/Kleinschreibung, müssen
alle Wörter in Kleinschreibung und ohne Trennstriche verglichen werden.
 Die AWK-Funktion tolower() versagt unter Windows jedoch (wieder einmal)
bei Umlauten und dergleichen.  Wörter, bei denen lediglich die
Groß-/Kleinschreibung geändert wurde, wurden daher als korrigiert
eingestuft, aktuell zum Beispiel 'über-last', welches in 'Über-last'
geändert wurde.  (Nach welche Kriterien entscheiden wir bei
Homo-/Heteronymen eigentlich die Groß- und Kleinschreibung?  'über-last'
ist eine korrekte Verbform.)

Daher wird die Umwandlung nun von Hand mit Hilfe der Übersetzungsdatei
von Patgen (german.tr) durchgeführt.  Der Name der Übersetzungsdatei
muss dem AWK-Skript auf der Kommandozeile in der Variablen ftr bekannt
gemacht werden:

  gawk -f patgen-list-diff.awk -v ftr=daten/german.tr <diff datei>



Mehr Informationen über die Mailingliste Trennmuster