%paramfile
Verwendung einer Parameterdatei mit CSVfox Befehlen
Beschreibung
Ein paramfile-Befehl bezeichnet eine Datei, die ihrerseits einige CSVfox Befehlszeilenparameter enthält.
Eine Parameterdatei ist eine reine Textdatei. Jede Zeile enthält genau einen CSVfox Parameter. Die Befehle werden also Zeile für Zeile aus der Parameterdatei gelesen.
Sie werden in der Reihenfolge verarbeitet, als ob sie in der Befehlszeile an der Stelle stehen würden, an der der %paramfile Befehl aufgerufen wurde.
Dies ermöglicht eine bessere Übersichtlichkeit der Befehle, die Wiederverwendung in verschiedenen Konstellationen und erspart das Zitieren der in den Parameter eingebetteten Leerzeichen.
Insbesondere bei einer sehr langen Folge von Befehlszeilenparametern oder einem komplexen
In jeder Shell gibt es auch verschiedene Steuerzeichen und Platzhaltermechanismen sowie Weiterleitungs- und Umleitungszeichen, die die Befehle von CSVfox beeinträchtigen können; auch diese Effekte können durch die Verwendung einer Parameterdatei vollständig vermieden werden.
Muster
%paramfile=filename %paramfile/encoding=filenameDer Befehl %paramfile kann allein oder zwischen anderen csvfox-Befehlen angegeben werden.
Mehrere %paramfile Befehle sind auf derselben Befehlszeile möglich. %paramfile Dateien können sogar verschachtelt werden.
Der in der Parameterdatei verwendete Zeichensatz kann optional mit der Option "/" angegeben werden.
In der Parameterdatei enthält jede Zeile ein Argument, das sonst ein Programmparameter gewesen wäre. Jedes Leerzeichen ist Teil des Ausdrucks, daher müssen eingeschlossene und nachgestellte Leerzeichen sorgfältig vermieden werden, wenn sie nicht Teil des Befehlsausdrucks sein sollen.
Vorangestellte Leerzeichen werden ignoriert und können zur besseren visuellen Strukturierung der Datei verwendet werden.
Andererseits ist das Einschließen von Befehlen, Ausdrücken und Feldnamen, die Leerzeichen enthalten, nicht notwendig, da sie nicht automatisch an Leerzeichen aufgeteilt werden.
Eine Parameterdatei kann jede unterstützte Kodierung haben, so dass sie alle einschränkenden oder Befehlszeilen-Zeichensätze überwindet. Dies ist besonders für Windows wichtig, da unter Linux oder MacOS eine UTF-8-Shell Standard ist, die nur wenige Zeichenbeschränkungen mit sich bringt.
Stellen Sie sich die Befehlszeilensequenz vor:
- csvfox infile.csv +delim=, -delim=; -set[a]=([*]+20%) "
my output file.csv "
Und von nun an können Sie einfach aufrufen:
- csvfox %paramfile=myparameters.txt
Sie können alle oder nur einige der erforderlichen Parameter in einer Parameterdatei ablegen. Auf diese Weise können Sie einige Bausteine vorbereiten, die häufig verwendet werden können.
Beispiele für die Verwendung
- csvfox infile.csv %paramfile=us_to_ger.txt outfile.csv
- Die Parameterdatei us_to_ger.txt enthält eine Reihe von Konvertierungen, die vorgenommen werden können, um eine CSV Datei, die den US-amerikanischen Gepflogenheiten folgt, besser an das deutsche Gebietsschema anzupassen (auf einem älteren Windows-PC). Sie ändert das Trennzeichen CSV von Komma zu Semikolon, die Kodierung von ASCII zu Windows-1252 und ersetzt den Dezimalpunkt im Feld "Preis" durch ein Dezimalkomma.us_to_ger.txt+delim=, +encoding=ASCII -delim=; -encoding=Windows-1252 -regex[Price]=\d\.\d/\1,\2
Die Datei wird hier zum Ändern von infile.csv in outfile.csv verwendet. - csvfox infile.csv %paramfile/UTF-8=us_to_ger.txt outfile.csv
- Liest die Parameter aus us_to_ger.txt explizit im UTF-8-Format anstelle des plattformspezifischen Standardformats und verwendet sie zum Ändern von infile.csv in outfile.csv.
- csvfox infile.csv %paramfile=us_to_ger.txt -rename[Preis]=[Betrag] -columns=[3]-[6] outfile.csv
- Liest erneut die Parameter aus us_to_ger.txt und verwendet sie für die Änderung von infile.csv in outfile.csv.
Und es sind zusätzliche Befehle auszuführen, da das Feld "Preis" in outfile.csv in "Betrag" umbenannt werden muss und die Ausgabedatei nur die Felder von Nummer 3 bis 6 enthalten soll.