viele Dateien importieren

18/04/2013 - 12:28 von Jens Peter Möller | Report spam
Hallo Zusammen,

ich habe viele viele Backup-Dateien die ich in
einem Rutsch in MySQL importieren möchte.

Das geht ja normal so:

mysql datenbankname < backupfile

Dummerweise hab ich aber einzelne Dateien pro Tabelle.

blala_datenbankname.tabellenname.txt


Blauàugig dachte ich an:

mysql datenbankname < blala_datenbankname.*


Geht aber nicht - Fehler: ambiguous redirect.

Wie kann man das rechts des "<" schreiben, dass
alle "blala_datenbankname.*" gefunden werden.

Das übersteigt leider meine bash-Kenntnisse. Ich
weiß auch nicht mal richtig, wonach ich suchen
sollte. *schàm*


Danke und Gruß
JPM
 

Lesen sie die antworten

#1 Juergen Ilse
18/04/2013 - 12:48 | Warnen spam
Hallo,

Jens Peter Möller wrote:
ich habe viele viele Backup-Dateien die ich in
einem Rutsch in MySQL importieren möchte.

Das geht ja normal so:

mysql datenbankname < backupfile

Dummerweise hab ich aber einzelne Dateien pro Tabelle.

blala_datenbankname.tabellenname.txt


Blauàugig dachte ich an:

mysql datenbankname < blala_datenbankname.*


Geht aber nicht - Fehler: ambiguous redirect.



Stell dir mal die "expandierte Zeile" vor, da steht dann so etwas wie:

mysql datenbankname < blala_datenbankname.1.sql blala_datenbankname.2.sql

Das geht so natuerlich *nicht*, denn es kann nicht die Eingabe aus mehreren
Dateien gleichzeitig kommen ... Hinter der "Eingabeumlenkung" darf also
jeweils nur *eine* Datei stehen. Als Loesungsmoeglichkeit koenntest du
entweder eine Schleife in der shell ueber alle "matchenden" Dateinamen
machen:

for f in blala_datenbankname.*; do
mysql datenbankname < $f
done

oder du koenntest evt. auch die Dateien mit z.B. "cat" alle hintereinander
gehaengt als Eingabe von mysql verwenden:

cat blala_datenbankname.* | mysql datenbankname

Ist aber jetzt alles ungetestet, testen muesstest du es selbst.

Wie kann man das rechts des "<" schreiben, dass
alle "blala_datenbankname.*" gefunden werden.



Es werden ja alle gefunden, das ist ja (sofern es mehr als eine Datei ist)
gerade das Problem, was dir in der shell den Syntax-Error einbringt ...

Das übersteigt leider meine bash-Kenntnisse. Ich
weiß auch nicht mal richtig, wonach ich suchen
sollte. *schàm*



Du solltest evt. mal ein Tutorial zur shell-Programmierung durcharbeiten
(das wuerde evt. auch bei vielen anderen Dingen bzgl. Umgang mit der shell
weiterhelfen).

Tschuess,
Juergen Ilse ()
Ein Domainname ist nur ein Name, nicht mehr und nicht weniger.
Wer mehr hineininterpretiert, hat das Domain-Name-System nicht
verstanden.

Ähnliche fragen