Ordner erstellen anhand eines Dateinames

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von rosaroterPanthe, 06.12.2007.

  1. #1 rosaroterPanthe, 06.12.2007
    rosaroterPanthe

    rosaroterPanthe Grünschnabel

    Dabei seit:
    06.12.2007
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo Leute,

    ich bin ein absoluter neuling und kämpfe gerade mit einem kleinen Problem...
    Ich möchte ein shell-script schreiben das mir hilft Dateien zu sortieren.
    in jedem Dateinamen ist ein Datum enthalten.
    die Dateinamen haben immer die selbe länge.
    z.b. "abcde071206xyz.abc"
    Jetzt möchte ich das dem Datum im dateiname entsprechend ein Ordner erstellt wird und die Dateien dem ensprechend in den passenden Ordner kopiert werden...


    hat jemand eine idee?
    wäre für hilfe sehr dankbar!

    grüße
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 06.12.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Schnellschuß:

    Alle Dateien seien in einem Verzeichnis in dieser Form
    Code:
    for a in *;
    do
    newdir=/path/${a//[!0-9]/};
    if [ ! -d $newdir ];
    then
    mkdir $newdir
    fi
    if [ ! ${newdir}/$a ];
    then
    cp $a $newdir;
    else
    echo "${newdir}/$a existiert schon!"
    fi
    done
    
    Entsprechend anpassen.

    Gruß Wolfgang
     
  4. #3 rosaroterPanthe, 07.12.2007
    rosaroterPanthe

    rosaroterPanthe Grünschnabel

    Dabei seit:
    06.12.2007
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo Wolfgang,
    Danke,
    ist soiweit auch ein guter ansatz und ich verstehe beinahe alles :-)
    jetzt hab ich nur noch das problem das das datum im dateinamen nicht die einzigen zahlen sind.
    ich brauch quasi als $newdir eine bestimmte possition im dateinamen...
    komme damit aber nicht wirklich weiter... hast mir ein schlagwort wonsch ich da suchen kann um das prob zu lösen?
    auch das "cp" funktioniert noch nicht...
    vielleicht kannst du mir nochmal einen denkanstoss verpassen :-)

    danke für deine hilfe
     
  5. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Wenn das Datum immer an der gleichen Stelle ist, kannst Du es mit der '-f' option zu 'cut' ausschneiden und weiterverwenden.
     
  6. #5 rosaroterPanthe, 07.12.2007
    rosaroterPanthe

    rosaroterPanthe Grünschnabel

    Dabei seit:
    06.12.2007
    Beiträge:
    5
    Zustimmungen:
    0
    les mich gerade in cut ein...
    wie bring ich das in das oben genannte script rein?
    Merci
     
  7. #6 Brakiss, 07.12.2007
    Brakiss

    Brakiss Grünschnabel

    Dabei seit:
    07.12.2007
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo,

    ich glaube cut -c wäre eher die richtige Wahl.

    Wenn das datum immer ab der 6ten Stelle losgeht wäre das datum mit
    cut -c 6-11 (bei zweistelliger Jahreszahl ) rauszuholen.
    Die Hochkommas führen übrigens dazu, dass das was darin enthalten ist ausgeführt wird und die Ausgabe davon wird dann an die stelle des in den
    Hochkommas eingerahmten Abschnitts gesetzt.

    for a in *;
    do
    newdir=/path/`echo $a | cut -c 6-11`;
    if [ ! -d $newdir ];
    then
    mkdir $newdir
    fi
    if [ ! ${newdir}/$a ];
    then
    cp $a $newdir;
    else
    echo "${newdir}/$a existiert schon!"
    fi
    done

    Ich hoffe das hilft dir weiter
     
  8. #7 rosaroterPanthe, 07.12.2007
    Zuletzt bearbeitet: 07.12.2007
    rosaroterPanthe

    rosaroterPanthe Grünschnabel

    Dabei seit:
    06.12.2007
    Beiträge:
    5
    Zustimmungen:
    0
    Danke,

    bin schon mal ein schritt weiter... aber ich glaube das überfordert mich noch ein wenig :-)
    die Ordner werden jetzt erstellt... allerdings funktioniert das kopieren noch nicht...
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    Fehler bei kopieren lag daran das noch ein "-f" gesetzt werden muss da es sich um eine Datei handelt...
    if ! [ -f ${newdir}/$a ];

    theoretisch geht es jetzt... wenn nicht gerade ein Kollege beschlossen hätte das die Dateien doch nicht einheitlich lang sind... es div. um eine Stelle...
    :devil:
    ist es möglich mit cut -c von hinten (123.abc, also von c, b,a) zu zählen?
    :think:
    bzw hat schon jemand mit awk gearbeitet?

    gruß
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 Wolfgang, 07.12.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Du kannst das nicht mit cut allein hinbekommen.
    Allerdings kannst du mit rev die Zeichenkette umdrehen und bearbeiten, und am Ende wieder umdrehen.

    Code:
    a=1234567;
    $ echo $a|rev|cut -c 1-5|rev
    34567
    
    Um die letzten drei Zeichen wegzulassen geht in der bash/ksh auch dieses:
    Code:
    a=1234567;
    echo ${a%???};
    1234
    
    Wenn du ein zuverlässiges Muster hast, geht das sicher auch mit anderen Mitteln.
    Ich bin allerdings von deinem Beispiel ausgegangen.

    Und ja, das fehlende f ist natürlich ein Fipptehler von mir.
    ;)

    Gruß Wolfgang
     
  11. #9 rosaroterPanthe, 28.12.2007
    Zuletzt bearbeitet: 03.01.2008
    rosaroterPanthe

    rosaroterPanthe Grünschnabel

    Dabei seit:
    06.12.2007
    Beiträge:
    5
    Zustimmungen:
    0
    Danke!!! das war die lösung!!! werde nach meinem urlaub die komplette lösung noch posten :-)

    guten rutsch euch allen


    so hier meine lösung...


     
Thema:

Ordner erstellen anhand eines Dateinames

Die Seite wird geladen...

Ordner erstellen anhand eines Dateinames - Ähnliche Themen

  1. Ordner im /var erstellenj

    Ordner im /var erstellenj: Hallo zusammen. Ich bin neu in dem was linux angeht. Nun wollte ich über die konsole einen neuen Ordner im verzeichnis /var einrichten....
  2. Kann keine Ordner erstellen bei Externer Festplatte ?

    Kann keine Ordner erstellen bei Externer Festplatte ?: Moin und zwar habe ich folgendes Problem ich habe ne Externe Festplatte angeschlossen und wenn ich jetzt ein Ordner erstellen möchte dan kommt ne...
  3. Ordner für jeden Monat erstellen

    Ordner für jeden Monat erstellen: Hallo! Irgendwie werde ich nicht warm mit der Bash. Aus für mich unerfindlichen Gründen scheitere ich an den einfachsten Aufgaben. Brauche Hilfe!...
  4. Ordner gelöscht, wie wieder herstellen?

    Ordner gelöscht, wie wieder herstellen?: Hi, habe gerade - durch eine ablenkung - den Ordner mit meinen Bildern gelöscht. Natürlich habe ich auch den Papierkorb entleert (natürlich...
  5. 10.2: Ordner "Dokumente" wiederherstellen

    10.2: Ordner "Dokumente" wiederherstellen: Hallo, ich habe den Standardordner Dokumente gelöscht, weil ich den eigentlich nicht brauche. Jetzt habe ich allerdings das Problem dass es ja...