Hallo,
1.: Ist es moeglich, statt des Statements einen Dateinamen einer SQL-Datei zu uebergeben, die ausgefuehrt werden soll?
siehe dedlfix' Antwort.
2.: Kann man das Format der Ausgabe individuell vorgeben? (XML-Ausgabe kann man laut Doku vorgeben, aber CSV nicht).
individuell nicht, aber Du hast im Batchmodus, den Du entweder mit
-b
oder durch Einlesen der Statements aus einer Datei, was Du ja vorhast, bekommst, nahezu schon tabulatorgetrenntes CSV-Format. Vier spezielle Zeichen sind maskiert, siehe Handbuch, Option --raw.
Folgendes müsste doch ausreichen (ich hoffe, ich habe nichts übersehen):
Für jede Zeile
    Entferne das Zeilenende
    Trenne am Tabulator
    Für jeden Eintrag
        Verdopple das Begrenzungszeichen
        Entferne die Transportsicherung bei maskierten Zeichen
        Packe (wenn nötig) den Eintrag in Begrenzungszeichen [1]
    Ende Für
    Verbinde alle Einträge mit dem gewünschten Feldtrennzeichen
    Hänge das gewünschte Zeilenendezeichen an
Ende Für
sollte nicht zu schwer umzusetzen sein. Muss ja nicht Shellskript sein, könnte auch in $programmiersprache gelöst sein, könnte aber von STDIN lesen und nach STDOUT ausgeben, damit Du die Ausgabe von mysql einfach durchpipen kannst.
Freundliche Grüße
Vinzenz
 nicht angemeldet
 nicht angemeldet