Anzeige:
Ergebnis 1 bis 10 von 10

Thema: In Textdatei referenzierte Datei an einen anderen Ort kopieren

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jul 2005
    Beiträge
    60

    In Textdatei referenzierte Datei an einen anderen Ort kopieren

    Hallo,

    folgendes etwas kompliziertes Problem :


    Ich habe 2 identische Ordnerstrukturen mit Unterordnern in dennen ueberall dateien liegen :


    1/AB/CD/EF/
    1/XY/WV/UT/

    und

    2/AB/CD/EF/
    2/XY/WV/UT/


    In einer Textdatei.xml ausserhalb von Struktur 1 wird nun in einer Zeile eine Datei referenziert:

    zb:

    1/AB/CD/EF/datei.xml

    .

    Ich moechte nun erreichen das die in der Textdatei.xml referenzierte datei.xml (moeglichst automatisiert) von Struktur 1 nach Struktur 2 kopiert wird.

    Das heisst irgendwas muss die textdatei.xml auslesen und dann entsprechend
    die referenzierte Datei.xml von Struktur 1 nach Struktur 2 an die richtige Stelle kopieren.

    Wie kann ich dies erreichen ? Ich steh da n bisi auf dem Schlau


    viele Gruesse
    tkbeat

  2. #2
    Solarmarschall Avatar von BedriddenTech
    Registriert seit
    Jul 2002
    Ort
    Monsheim bei Worms a. Rhein
    Beiträge
    1.461
    Eine Skriptsprache Deiner Wahl mit XPath-Unterstützung kann Dir sehr schnell und elegant eine List aller Dateien liefern, die Du dann nur noch weiterverarbeiten mußt. Gib doch mal einen Ausschnitt aus der XML-Datei, dann gibts evtl auch gleich den Ausdruck dazu.
    Please, please spam me! bedriddentech@web.de -- oh please, spam bedriddentech@web.de
    Thanks, dear spam bots for training my spam filter. :D

  3. #3
    Registrierter Benutzer
    Registriert seit
    Jul 2005
    Beiträge
    60
    In der Textdatei.xml steht nur eine einzige Zeile, ebend der PFad :

    1/AB/CD/EF/datei.xml

    zu der eigentlichen datei.xml die kopiert werden soll.

    Kannst du mir evtl mit einem Beispiel helfen ?
    Geändert von TKbeat (26.05.09 um 12:08 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    es ist also keine XML-Datei.
    Code:
    for d in $(cat $datei)
    do
      cp $d /neuer/pfad/
    done
    Ich bin root - ich darf das.

  5. #5
    Registrierter Benutzer
    Registriert seit
    Jul 2005
    Beiträge
    60
    Hallo,

    danke für den Hinweis. Leider ist der Zielpfad ebend auch dynamisch, das heisst
    wenn in der Texdatei.xml z.b 1/AB/CD/EF/Datei.xml steht, dann soll Die Datei.xml nach
    2/AB/CD/EF kopiert werden.

    Steht zb. in der Textdatei.xml 1/AB/CD/Datei.xml so soll die Datei.xml nach 2/AB/CD/ kopiert werden. Das einzige was also statisch ist, ist die 2/ am Anfang.

    Nicht so ganz easy, deswegen klemmts auch so *g*


    Ich weiss da nich so richtig wie ich den Zielpfad parsen könnte ?!


    viele Grüße
    tkbeat

  6. #6
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    Dann suchst Du
    Code:
    dirname
    und evtl.
    Code:
    cut
    Ich bin root - ich darf das.

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jul 2005
    Beiträge
    60
    OK das funzt erstmal .

    Jetzt hab ich noch das Problem das in dieser TextDatei manchmal auch 2 oder 3 zeilen mit jeweils einem Pfad auf eine Datei stehen können.

    Ich müsste also irgendwie in einer Schleife die Datei zeilenweise auslesen,
    wie könnte das aussehen ? im Moment sieht mein Script so aus :

    for d in $(cat *)
    do
    cp /opt/test.01-content/$d /media/contentlive/$(dirname $(cat *))
    done
    cp /opt/test.01-content/spl/* /media/contentlive/spl

    mit Textdateien mit nur einem Pfad funktioniert das sehr gut wie gesagt, nur ebend mit mehr als einer Zeile nicht.

  8. #8
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    geschachtelte for-Schleife verwende.
    Ich bin root - ich darf das.

  9. #9
    Registrierter Benutzer
    Registriert seit
    Jul 2005
    Beiträge
    60
    Problem ist das der hierbei immerwieder die bereits eingelesenen wieder mit einliest .

  10. #10
    Who's Johnny? Avatar von L00NIX
    Registriert seit
    Mar 2004
    Beiträge
    1.229
    Kleiner Denkanstoß:
    Code:
    #!/bin/bash
    # file: sync.sh
    
    # Skript (Aufrufname)
    ME=$( basename $0 )
    
    # Basisverzeichnisse (fest)
    BASE1=/tmp/test/1
    BASE2=/tmp/test/2
    
    # Dateiliste, relativ zu BASE1 und BASE2
    LIST=file.xml
    
    # Weiche, je nachdem, in welche Richtung gesynct werden soll
    case $ME in
        sync1to2)
    	FILELIST=$BASE1/$LIST
    	SRC=$BASE1
    	DST=$BASE2
    	;;
        sync2to1)
    	FILELIST=$BASE2/$LIST
    	SRC=$BASE2
    	DST=$BASE1
    	;;
        *)
    	echo "Fehler: muss als sync1to2 oder sync2to1 aufgerufen werden."
    	exit 1
    	;;
    esac
    
    if [ ! -r "$FILELIST" ] ; then
        echo "Fehler: Dateiliste '$FILELIST' nicht gefunden."
        exit 1    
    fi
    
    # Quelldateien aus Datei lesen...
    cat $FILELIST | while read srcfile ; do
    
        # ... Zieldatei "generieren"
        dstfile=$DST/${srcfile##$SRC/}
    
        # Existiert die Zieldatei? ja => Warnung, aber ueberschreiben
        if [ -r "$dstfile" ] ; then
    	echo "Warnung: Ueberschreibe Datei '$dstfile'"
        fi
    
        # evtl. das cp in den else-Zweig?
        cp -f "$srcfile" "$dstfile"
    
    done
    Anm.:
    Das Skript heißt "sync.sh" und hat zwei symbolische Links auf sich mit den Namen "sync1to2" und sync2to1". Pfade müssen natürlich angepasst werden!

    Eventuell kommst du mit dem Ansatz weiter, denn du hast zweimal das gleiche nur jeweils umgedreht. Es reicht also ein Skript, dass aber je nach Syncronisationsrichtung Quelle und Ziel vertauschen muss.

    Gruß
    L00NIX

Ähnliche Themen

  1. Was haltet ihr von WINDOWS ?
    Von Odin3011 im Forum Meldungen und Mitglieder
    Antworten: 144
    Letzter Beitrag: 06.11.07, 22:39
  2. Datei /usr/bin/[
    Von Ede im Forum Linux Allgemein
    Antworten: 6
    Letzter Beitrag: 22.07.07, 01:54
  3. pdf writer für samba in suse 8.0
    Von cos im Forum Anwendungen Allgemein, Software
    Antworten: 16
    Letzter Beitrag: 14.10.05, 21:34
  4. Daten in eine iso Datei kopieren?
    Von TheDodger im Forum Linux Allgemein
    Antworten: 4
    Letzter Beitrag: 09.08.02, 18:36
  5. ich krieg nixnistalliert!
    Von S3r!0us im Forum System installieren und konfigurieren
    Antworten: 5
    Letzter Beitrag: 08.07.02, 08:45

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •