Hallo, Am Sun, 26 Oct 2003, Al Bogner schrieb:
Am Sonntag, 26. Oktober 2003 20:56 schrieb David Haller:
Welche 3 Zeilen? Die ersten 3 Datensaetze oder wie? Da solltest du mit 'where' filtern koennen. Ansonsten:
echo 'SELECT ... ' | mysql ... | sed '1,3d' > test.txt
(oder gleich weiterpipen ;)
Ich meinte die 1. 3 Zeilen,
die sehen also so aus:
@a:=0 0 export
Problem ist, dass ich einen Zähler mehrmals brauche. Daher kommt also @a:=0 0 weil ich die Variable initialisieren muss.
Ach so.
Kannst du bitte die sed-Syntax an hier bereits funktionierendes anpassen:
Das erzeugt hier eine Datei mit 3 Zeilen zuviel am Anfang.
mysql --host=$MYSQLHOST -A --user=$MYSQLUSER --password=$MYSQLPWD $MYSQLDB --execute="$MYSQLEXPORTCMDME" > $MEIMPORT
Ich wuerde dir immer noch empfehlen, die SQL-Kommandos nicht via --execute zu uebergeben, das macht u.a. das quoten WESENTLICH einfacher, besonders wenn du z.B. noch 'cat <<EOF' verwendest, denn dann kannst du innerhalb des <<EOF .. EOF auch "" und '' ohne weiteres quoten verwenden. cat <<EOF | mysql ... $MYSQLDB | sed '1,4d' > $MEIMPORT select concat("foo", bar, ... EOF Oder, vielleicht etwas robuster als mit der Zeilenangabe: cat <<EOF | mysql ... $MYSQLDB | sed '1,/^export/d' > $MEIMPORT select ... EOF Die Zeile mit dem 'export' am Zeilenanfang ist dann die letzte (inklusive) die geloescht wird. Du kannst natuerlich auch das '--execute' verwenden, aber s.o., ich empfehle dir dringend, besonders wenn die Abfrage komplexer ist eine gesonderte Datei (cat Abfrage.sql | mysql ...) oder eben ein "Here"-Dokument wie oben (cat <<EOF ... | ). -dnh -- Wenn man Signaturen essen könnte, hätten in Dag° alle durch mich Gewichtsprobleme. [WoKo in dag°]