%job, %j
Verwendung einer Auftragsdatei mit CSVfox Befehlen
Beschreibung
Ein
Eine job Datei ist eine reine Textdatei. Jede Zeile enthält genau einen CSVfox Befehl. Die Befehle werden also Zeile für Zeile aus der job Datei gelesen.
Sie werden der Reihe nach abgearbeitet, so als ob sie in der Befehlszeile an der Stelle stehen würden, an der der
Einrückung, Leerzeilen und Kommentare
Vorangestellte ein oder mehrere Leerzeichen werden aus jeder Zeile der Datei job entfernt. Nachfolgende Leerzeichen sind Teil des Befehls.
Leere Zeilen werden ignoriert und übersprungen.
Kommentarzeilen beginnen mit einer Raute, gefolgt von einem Leerzeichen: "# ". Sie werden ebenfalls ignoriert und übersprungen.
Vorteile gegenüber der direkten Verwendung in der Befehlszeile
Das Verschieben von Befehlen in eine Datei ermöglicht eine bessere Übersichtlichkeit, die Wiederverwendung in verschiedenen Konstellationen und es erspart das Zitieren von in den Parameter eingebetteten Leerzeichen.
Insbesondere bei einer sehr langen Folge von Kommandozeilenparametern oder einem komplexen
In jeder Shell gibt es auch verschiedene Steuerzeichen und Platzhaltermechanismen sowie Weiterleitungs- und Umleitungszeichen, die mit CSVfox Befehlen interferieren können; auch diese Effekte können durch die Verwendung einer job Datei vollständig vermieden werden.
Muster
Der Befehl%j=filename %job=filename %job/encoding=filename
Mehrere %job Befehle sind in der gleichen Befehlszeile möglich. %job Dateien können sogar verschachtelt werden.
Der in der Parameterdatei verwendete Zeichensatz kann optional mit der Option "/" angegeben werden.
In der Datei %job enthält jede Zeile ein Argument, das andernfalls 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 getrennt werden.
Eine %job Datei 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 %job=changedelimiters.txt
Sie können alle oder nur einen Teil der erforderlichen Parameter in einer %job Datei ablegen. Auf diese Weise ist es möglich, einige Bausteine vorzubereiten, die häufig verwendet werden können.
Beispiele für die Verwendung
- csvfox infile.csv %job=us_to_german.txt outfile.csv
- Die Datei %job us_to_german.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 auf Semikolon, die Kodierung von ASCII auf Windows-1252 und ersetzt den Dezimalpunkt im Feld "Preis" durch ein Dezimalkomma.us_to_german.txt# Umformatierung von ASCII nach Windows +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 %job/UTF-8=us_to_german.txt outfile.csv
- Liest die Befehle von us_to_german.txt explizit im UTF-8-Format anstelle des plattformspezifischen Standardformats und verwendet sie zum Ändern von infile.csv in outfile.csv.
- csvfox infile.csv %job=us_to_german.txt -rename[Price]=[Amount] -columns=[3]-[6] outfile.csv
- Liest die Befehle von us_to_german.txt erneut ein und verwendet sie für die Änderung von infile.csv in outfile.csv.
Und es müssen zusätzliche Befehle ausgeführt werden, da das Feld "Preis" in outfile.csv in "Betrag" umbenannt werden muss und die Ausgabedatei nur die Felder mit den Nummern 3 bis 6 enthalten soll.