Dateien in Ordner umkopieren.

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
DEBIANUNDANDREAS
Beiträge: 1304
Registriert: 01.06.2013 10:37:46

Dateien in Ordner umkopieren.

Beitrag von DEBIANUNDANDREAS » 01.12.2014 07:33:31

Hallo.
Ich habe ein Programmierproblem.
Ich habe Dateien im Format 30.11.2014Strom-gas.ods auf dem Arbeitsplatz, also Tag.Monat.JahrStrom-gas.ods
Jetzt möchte ich diese Dateien sortieren also umkopieren oder verschieben.
Jeweils in einen Ordner passend dem Monat also 30.11.2014Strom-gas.ods in den Ordner 2014/Nowember.
Mich als Anwendernormallo stellt das vor eine ziemliche, unüberwindbare Hürde.
Wär kann mir Helfen mein obengestecktes Ziel zu erreichen?

wanne
Moderator
Beiträge: 7548
Registriert: 24.05.2010 12:39:42

Re: Dateien in Ordner umkopieren.

Beitrag von wanne » 01.12.2014 08:24:01

Code: Alles auswählen

mv ??.11.2014Strom-gas.ods Nowember
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
DEBIANUNDANDREAS
Beiträge: 1304
Registriert: 01.06.2013 10:37:46

Re: Dateien in Ordner umkopieren.

Beitrag von DEBIANUNDANDREAS » 01.12.2014 08:25:52

Das geht schon in die richtige Richtung.

Benutzeravatar
DEBIANUNDANDREAS
Beiträge: 1304
Registriert: 01.06.2013 10:37:46

Re: Dateien in Ordner umkopieren.

Beitrag von DEBIANUNDANDREAS » 01.12.2014 08:37:35

Allerdings müsste eine Schleifenkonstruktion die jeweiligen Daten (Tag.Monat.JahrStrom-gas.ods) durchlaufen.

Benutzeravatar
hikaru
Moderator
Beiträge: 13907
Registriert: 09.04.2008 12:48:59

Re: Dateien in Ordner umkopieren.

Beitrag von hikaru » 01.12.2014 08:52:17

Genau wegen solchen Sachen wurde dir ja woanders [1] geraten, Datumsangaben in Dateinamen nach ISO 8601 zu formulieren. Das sortiert sich nämlich von allein.


[1] viewtopic.php?f=15&t=152467

Benutzeravatar
DEBIANUNDANDREAS
Beiträge: 1304
Registriert: 01.06.2013 10:37:46

Re: Dateien in Ordner umkopieren.

Beitrag von DEBIANUNDANDREAS » 01.12.2014 09:02:11

Ob es sich sortiert oder nicht, es soll umkopiert werden und das in einem Script.

Benutzeravatar
Patsche
Beiträge: 3262
Registriert: 21.06.2013 01:47:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: /home/10001101001

Re: Dateien in Ordner umkopieren.

Beitrag von Patsche » 01.12.2014 09:46:30

Oder einfach:

Code: Alles auswählen

mv *11*2014* 2014/November
Mit Oktober halt:

Code: Alles auswählen

mv *10*2014* 2014/Oktober
Und mit einem anderen Jahr:

Code: Alles auswählen

mv *10*2013 2013/Oktober
PS:
Der Monat heißt November nicht Nowember :D

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Dateien in Ordner umkopieren.

Beitrag von Cae » 01.12.2014 09:56:00

Patsche hat geschrieben:Oder einfach:

Code: Alles auswählen

mv *11*2014* 2014/November
In der Mitte sollte der Stern * ein Punkt . sein, sonst globbt das zum Beispiel auch auf 11.12.2014.foo.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
DEBIANUNDANDREAS
Beiträge: 1304
Registriert: 01.06.2013 10:37:46

Re: Dateien in Ordner umkopieren.

Beitrag von DEBIANUNDANDREAS » 01.12.2014 11:33:40

mv *11*2014* 2014/November
Ja schon verstanden aber,
ich habe aktuell den 1.12.2014 für den und alle folgenden Tage bräuchte ich ein Schleifenscript.
365 Zeilen wären aber zuviel!

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Dateien in Ordner umkopieren.

Beitrag von Lord_Carlos » 01.12.2014 11:40:59

Das waeren 12 Zeilen, fuer jeden Monat eine.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
DEBIANUNDANDREAS
Beiträge: 1304
Registriert: 01.06.2013 10:37:46

Re: Dateien in Ordner umkopieren.

Beitrag von DEBIANUNDANDREAS » 01.12.2014 11:44:51

Bis 31/ (Tage) *12(monate)=365 Zeilen

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Dateien in Ordner umkopieren.

Beitrag von Lord_Carlos » 01.12.2014 12:08:09

Code: Alles auswählen

mv *.11.2014*.odt 2014/November
Sternchen * ist ein Wildcard. Also egal wie die datei heist, solange da "11.2014" im namen ist wird sie verschoben. Also werden alle november odt daten in den 2014/Novmber Ordner verschoben.
Demnach brauchst du nur 12 Zeilen (per jahr), eine fuer jeden Monat im jahr.

Edit: Also in etwar:

Code: Alles auswählen

mv *.01.2014*.odt 2014/Januer
...
mv *.10.2014*.odt 2014/Okto-bär
mv *.11.2014*.odt 2014/November
mv *.12.2014*.odt 2014/Dezember
und so weiter.
Zuletzt geändert von Lord_Carlos am 01.12.2014 12:10:40, insgesamt 1-mal geändert.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

JuergenPB

Re: Dateien in Ordner umkopieren.

Beitrag von JuergenPB » 01.12.2014 12:10:06

Das Fragezeichen ist ein Platzhalter.
??.11.2014.odt steht hier also für alle Dateien die auf .11.2014.odt enden. Im Falle des November also für 30 Dateien.

Benutzeravatar
DEBIANUNDANDREAS
Beiträge: 1304
Registriert: 01.06.2013 10:37:46

Re: Dateien in Ordner umkopieren.

Beitrag von DEBIANUNDANDREAS » 01.12.2014 14:29:03

Und wie mache ich es das die aktuellste *.ods Datei auf dem Desktop zurückbleibt?

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Dateien in Ordner umkopieren.

Beitrag von Lord_Carlos » 01.12.2014 14:46:25

Mhh, ja. Da wird es schwerig. Script erst am ende des Tages laufen lassen? *hust*

Sonnst muesste man sich was komplexeres bauen was alle Tage durchgeht und beim aktuellen stopped. Und dann kommt mal wieder ein Schaltjahr dazwischen und dann hast du den Salat :-/

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Dateien in Ordner umkopieren.

Beitrag von scientific » 01.12.2014 14:55:26

DEBIANUNDANDREAS hat geschrieben:Und wie mache ich es das die aktuellste *.ods Datei auf dem Desktop zurückbleibt?
Pack es in eine Schleife und lass das erste oder letzte Argument aus (je nach dem...)

Code: Alles auswählen

#!/bin/bash
FILES=$(ls *.11.2014*.odt)
for((i=1;i<${#FILES[@]};i++));do
  echo mv ${FILES[$i]} Ziel/ver/zeich/nis/.
done
Das ist zwar jetzt ungeprüft, aber so würd ich das momentan mit der bash lösen.
das echo zeigt dir nur an, was verschoben würde. Damit kannst du kontrollieren, ob das auch so passt. wenn du diese Schleife "scharf" machst, musst du nur das echo rauslöschen, dann wird tatsächlich gemoved.

lg scientific

PS: Die Reihenfolge kannst du umkehren mit »ls -r«, dann wird das älteste liegen gelassen.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
DEBIANUNDANDREAS
Beiträge: 1304
Registriert: 01.06.2013 10:37:46

Re: Dateien in Ordner umkopieren.

Beitrag von DEBIANUNDANDREAS » 01.12.2014 15:09:46

Die Reihenfolge kannst du umkehren mit »ls -r«, dann wird das älteste liegen gelassen.
Nur wo im Quelltext?

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Dateien in Ordner umkopieren.

Beitrag von Cae » 01.12.2014 15:11:52

DEBIANUNDANDREAS hat geschrieben:
Die Reihenfolge kannst du umkehren mit »ls -r«, dann wird das älteste liegen gelassen.
Nur wo im Quelltext?
An der einzigen Stelle, wo im Quelltext ls vorkommt.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Dateien in Ordner umkopieren.

Beitrag von scientific » 01.12.2014 15:14:17

Cae hat geschrieben:
DEBIANUNDANDREAS hat geschrieben:
Die Reihenfolge kannst du umkehren mit »ls -r«, dann wird das älteste liegen gelassen.
Nur wo im Quelltext?
An der einzigen Stelle, wo im Quelltext ls vorkommt.

Gruss Cae
Er könnts ja im eigenen Namen mal probieren... :) Oder im Aufzug in der Arbeit an die Decke kritzeln... :D

So genug böse. @DEBIANUNDANDREAS... ev. studierst du einmal ein paar Seiten mit Beispielen von Shell-Programmierung und probierst aus, was dort gezeigt wird. SO habs ich nämlich auch gelernt.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
DEBIANUNDANDREAS
Beiträge: 1304
Registriert: 01.06.2013 10:37:46

Re: Dateien in Ordner umkopieren.

Beitrag von DEBIANUNDANDREAS » 01.12.2014 15:34:09

Ich hab dein Script dementsprechen bereinigt, aber ichlasse es jetzt erstmal bei dem erwähnten echo mv.

scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Dateien in Ordner umkopieren.

Beitrag von scientific » 01.12.2014 15:41:47

DEBIANUNDANDREAS hat geschrieben:Ich hab dein Script dementsprechen bereinigt, aber ichlasse es jetzt erstmal bei dem erwähnten echo mv.
"bereinigt"??? Hast du es von "unnötigem" Crap-Code bereinigt? :)

Mit "echo mv" verschiebst du nichts. Es wird dir nur angezeigt, was verschoben würde. Und wenn das passt, dann lösch das echo raus, und es wird tatsächlich verschoben. Ich teste skripts immer so, bevor ich sie auf meine Daten loslasse...
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Dateien in Ordner umkopieren.

Beitrag von rendegast » 01.12.2014 17:30:34

Sowas?

Code: Alles auswählen

$ for i in $(seq 0 1 12); do echo mkdir -p $(date -d "$i month ago" "+%Y/%m"); done
mkdir -p 2014/12
mkdir -p 2014/11
mkdir -p 2014/10
mkdir -p 2014/09
mkdir -p 2014/08
mkdir -p 2014/07
mkdir -p 2014/06
mkdir -p 2014/05
mkdir -p 2014/04
mkdir -p 2014/03
mkdir -p 2014/02
mkdir -p 2014/01
mkdir -p 2013/12
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
DEBIANUNDANDREAS
Beiträge: 1304
Registriert: 01.06.2013 10:37:46

Re: Dateien in Ordner umkopieren.

Beitrag von DEBIANUNDANDREAS » 01.12.2014 17:53:53

Schaut interessant aus.

Antworten