Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Script für Daten kopieren

  1. #1
    Registrierter Benutzer Avatar von Klaus1
    Registriert seit
    Oct 2003
    Ort
    Schörfling am Attersee
    Beiträge
    157

    Script für Daten kopieren

    Hallo,

    ich habe in einem unterordner records Videos liegen, die ich gerne geordnet in Ordner mit JAHR/MONAT/TAG kopieren möchte.
    Das Datum ist im Dateinamen enthalten.
    Leider habe ich ein Problem beim Extrahieren des Pfades (basename) vom File in der Schleife:

    Code:
    #!/bin/bash
    #filenames example: MDalarm_20170119_162619.mkv
    for VIDEO in record/*.mkv
    do
    	BASEFILE=${basename $VIDEO}
    	ZIEL=record/${BASEFILE:8:4}/${BASEFILE:12:2}/${BASEFILE:8:8}
    	echo $ZIEL
    	mkdir -p $ZIEL
    	mv -i $VIDEO $ZIEL
    done
    Vielleicht kann mir da wer behilflich sein.
    danke,

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.061
    was tut denn nicht? Wie sehen die Dateinamen aus?
    Ich bin root - ich darf das.

  3. #3
    Registrierter Benutzer Avatar von Klaus1
    Registriert seit
    Oct 2003
    Ort
    Schörfling am Attersee
    Beiträge
    157
    Dateiname beispiel in zeile2.
    fehler:
    Code:
     line 4: ${basename $VIDEO}: bad substitution

  4. #4
    Banned
    Registriert seit
    Feb 2005
    Beiträge
    1.151
    Du willst:
    Code:
    somevar=$(  basename${someothervar}  )
    Das sind zwei ganz verschiedene Paar Stiefel.

    Das ${} Konstrukt ist für die Expansion von Variablen und besonders Arrays zuständig.

    Das $( someCommand ) ist die Expansion, die den Output eines Befehles anstelle des Konstruktes einsetzt.

    Und Alluppervars sind schlechter Stil.
    Schon lange.
    Auch wenn die schlechten Beispiele im Netz nicht weniger werden.

  5. #5
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.819
    Zum Thema guter Stil empfiehlt sich PEP 8, ist zwar Python, aber das meiste kann man gut übernehmen - da es ein gut überlegter Standard ist, bleibt das Einführungsgeschrei auch relativ klein
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  6. #6
    Registrierter Benutzer Avatar von Klaus1
    Registriert seit
    Oct 2003
    Ort
    Schörfling am Attersee
    Beiträge
    157
    danke jetzt kommt:
    Code:
    ./copyVid.sh: line 5: basenamerecord/MDalarm_20170119_172546.mkv: No such file or directory
    record///
    mv: `record/MDalarm_20170119_172546.mkv' and `record/MDalarm_20170119_172546.mkv' are the same file
    

  7. #7
    Banned
    Registriert seit
    Feb 2005
    Beiträge
    1.151
    Mea culpa.
    Da hab ich glatt ein Leerzeichen vergessen.

    Code:
    somevar=$(  basename  ${someothervar}  )
    Es wäre aber nicht allzu schwer gewesen, da selbst drauf zu kommen...

    Und die Variablennamen sind immer noch viel zu groß.

Ähnliche Themen

  1. Linux Shell Script, Daten bzw. bestimmten Script abschnitt in txt. Datei kopieren
    Von iBlack im Forum Anwendungen Allgemein, Software
    Antworten: 21
    Letzter Beitrag: 07.09.14, 14:13
  2. Daten kopieren
    Von masur im Forum Linux Allgemein
    Antworten: 6
    Letzter Beitrag: 29.03.07, 16:46
  3. Daten Kopieren
    Von franktron im Forum Linux Allgemein
    Antworten: 3
    Letzter Beitrag: 20.05.05, 15:43
  4. daten hd1 ->hd2 kopieren
    Von s20e6a14 im Forum Anwendungen Allgemein, Software
    Antworten: 10
    Letzter Beitrag: 16.11.04, 17:02
  5. daten via scp kopieren
    Von elrond im Forum Linux als Server
    Antworten: 5
    Letzter Beitrag: 07.01.03, 12:23

Lesezeichen

Berechtigungen

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