You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
4.8 KiB
162 lines
4.8 KiB
= Memtext FileConverter |
|
0.9.1 7.5.2024 |
|
:toc: |
|
|
|
|
|
|
|
== Übersicht |
|
Der Memtext FileConverter ist für Konvertierung und Kontrolle insbesondere von ISO-codierten Dateien nach UTF8 gedacht. |
|
Bei der Konvertierung werden störende Kontrollzeichen entfernt. |
|
vergleiche http://www.unicode.org/reports/tr44/#General_Category_Values oder https://www.compart.com/en/unicode/category |
|
(Kategorie C) |
|
|
|
Wenn das Zielencoding UTF8 ist, wird zudem noch einmal überprüft, ob alle Zeichen gültig in UTF8 sind. |
|
|
|
Die angegebenen Dateien werden automatisch ersetzt bzw. überschrieben durch das Zielkodierungsformat. |
|
Wenn diese aufwändig zu erzeugen waren, erstellen Sie vor der Konvertierung ein backup oder nutzen Sie den Modus "dry-run" bzw. "safe-run". |
|
|
|
Wichtig: Es kann sein, dass in der Quelldatei selbst keine Kontrollzeichen enthalten sind, diese erst künstlich generiert werden, wenn die Datei mit dem falschen InputEncoding eingelesen wird - vergleiche hierzu den LogLevel Debug. |
|
|
|
== Voraussetzung |
|
Es wird eine Java JRE mind. Version 11 erwartet. |
|
Wenn |
|
---- |
|
java -version |
|
---- |
|
eine ältere Version anzeigt, können Sie aber für das Script eine Umgebungsvariable setzen, die auf ein Verzeichnis mit einer JRE11 oder höher zeigt. |
|
z.B. |
|
---- |
|
export MEMTEXTFC_JRE=/usr/lib/jvm/java-11-openjdk-amd64 |
|
---- |
|
== Quickstart |
|
Eine einzelne ISO-kodierte Datei nach UTF8 konvertieren: |
|
---- |
|
memtextfileconverting.x -f /pfad/zur/Datei |
|
---- |
|
|
|
Alle *.unl-Dateien in einem Verzeichnis (inkl. untergeordneter Verzeichnisse) konvertieren |
|
---- |
|
memtextfileconverting.x -d /pfad |
|
---- |
|
|
|
|
|
== Optionen und Modi |
|
|
|
=== Datei oder Verzeichnis |
|
Man kan entweder eine einzelne Datei zur Konvertierung angeben oder ein ganzes Verzeichnis, dass dann sogar *rekursiv* durchsucht wird. |
|
Für eine einzelne Datei geben Sie an |
|
---- |
|
memtextfileconverting.x -f /pfad/zur/Datei |
|
---- |
|
oder für ein Verzeichnis |
|
---- |
|
memtextfileconverting.x -d /pfad |
|
---- |
|
|
|
Wenn Sie ein Verzeichnis angeben, wird per Default nach .unl-Dateien in allen Unterverzeichnissen davon gesucht. |
|
Wenn Sie andere Dateien verarbeiten möchten, können Sie ein Wildcard angeben, z.B. |
|
|
|
---- |
|
memtextfileconverting.x -d /pfad -w *.csv |
|
---- |
|
|
|
oder |
|
|
|
---- |
|
memtextfileconverting.x -d /pfad --wildcard *.csv |
|
---- |
|
|
|
=== Dry-run |
|
Man kann die Konvertierung auch nur testen, ohne das die Datei geschrieben wird. |
|
Dazu geben Sie die Option -n bzw. --dry-run an |
|
---- |
|
memtextfileconverting.x -n -f /pfad/zur/Datei |
|
---- |
|
|
|
oder |
|
|
|
---- |
|
memtextfileconverting.x --dry-run -f /pfad/zur/Datei |
|
---- |
|
|
|
=== Safe-Mode |
|
Bei Fehlern wird die Originaldatei mit der Endung .orig beibehalten. Also z.B. test.unl wird als test.unl.orig beibehalten. |
|
Geben Sie dazu den Parameter -s oder --safe-mode |
|
|
|
---- |
|
memtextfileconverting.x -f /pfad/zur/Datei -s |
|
---- |
|
|
|
oder |
|
|
|
---- |
|
memtextfileconverting.x -f /pfad/zur/Datei --safe-mode |
|
---- |
|
|
|
=== Tabs-to-Spaces |
|
Wenn Sie diese Option wählen werden Tabulatorzeichen durch *ein* Leerzeichen ersetzt. |
|
|
|
---- |
|
memtextfileconverting.x -f /pfad/zur/Datei -t |
|
---- |
|
oder |
|
|
|
---- |
|
memtextfileconverting.x -f /pfad/zur/Datei --tabs-to-spaces |
|
---- |
|
|
|
=== Input- und Outputkodierung |
|
Der Standardfall ist, dass ISO-kodierte Dateien nach UTF8 konvertiert werden sollen. |
|
|
|
Als Defaultinputencoding wird nicht ISO-8859-1 sondern ISO-8859-15 genommen, da in 15 auch das Euro-Zeichen enthalten ist. |
|
Wenn die Quelldateien nicht ISO-kodiert sind, können Sie eine andere INputCodierung angeben mit der Option -ie bzw. --input-encoding |
|
z.B. |
|
---- |
|
memtextfileconverting.x -f /pfad/zur/Datei -ie Windows-1252 |
|
---- |
|
oder |
|
|
|
---- |
|
memtextfileconverting.x -f /pfad/zur/Datei --input-encoding Windows-1252 |
|
---- |
|
|
|
Falls das Ausgabeformat nicht UTF-8 sein soll, können Sie es auch mit der Option -oe oder --output-encoding angeben. |
|
z.B. |
|
---- |
|
memtextfileconverting.x -f /pfad/zur/Datei -oe Windows-1252 |
|
---- |
|
oder |
|
|
|
---- |
|
memtextfileconverting.x -f /pfad/zur/Datei --output-encoding Windows-1252 |
|
---- |
|
|
|
== Logging |
|
Beim Logging werden drei Level unterschieden: debug, info (default) und severe |
|
Angabe z.B. mit |
|
---- |
|
memtextfileconverting.x -l debug -f /pfad/zur/Datei |
|
---- |
|
|
|
*debug* |
|
|
|
Hier werden die meisten Informationen ausgegeben, wenn nach dem Einlesen einer Quelldatei Kontrollzeichen gefunden werden, wird dies in eigener eigenen Datei protokolliert, z.B. für test.unl in test.unl_problems.txt. |
|
|
|
Wichtig: Es kann sein, dass in der Quelldatei selbst keine Kontrollzeichen enthalten sind, diese erst künstlich generiert werden, wenn die Datei mit dem falschen InputEncoding eingelesen wird. |
|
|
|
Es wird auch das Ergebnis eines "EncodingDetektors" ausgegeben. Dies kann nicht immer 100% korrekt sein, aber wenn Sie z.B. die Ausgabe erhalten |
|
|
|
---- |
|
Automatisch ermitteltes Encoding von /home/xxx/pbv_SPA.unl : WINDOWS-1252 |
|
---- |
|
|
|
kann dies ein Hinweis darauf sein, dass die Quelldatei Windows und nicht ISO-kodiert ist. |
|
|
|
*info* (default) |
|
|
|
Hier werden nur die wichtigsten Informationen ausgegeben. |
|
|
|
*severe* |
|
|
|
Nur bei Laufzeitfehlern des Programm selbst erfolgt eine Ausgabe |
|
|
|
|