Suche Linux-Coder für nen Shellscript

Kernel, Tools, Software, Distributionen, Installation, Treiber, Einstellungen

Moderatoren: coolmann, chillmensch, Xploder270, schmidtsmikey, Yurrderi

Joyrider
Beiträge: 4570
Registriert: 27.09.2006, 08:45

Suche Linux-Coder für nen Shellscript

Beitragvon Joyrider » 12.03.2017, 07:15

Ich suche jemanden mit guten Kenntnissen im Shellbereich, geht um ein Kopierscript das ich gerne hätte. :)

Es geht darum Dateien von einem festen Pfad abhängig vom Anfangsbuchstaben und der Dateiendung in verschiedene Unterordner zu kopieren und diese zu erstellen, falls noch nicht vorhanden.

Benutzeravatar
schmidtsmikey
Site Admin
Beiträge: 8969
Registriert: 08.12.2003, 21:50
Wohnort: Hamburg
Kontaktdaten:

Re: Suche Linux-Coder für nen Shellscript

Beitragvon schmidtsmikey » 12.03.2017, 12:16

Naja, ich würde Dich motivieren, es einmal selbst zu versuchen. Bash ist ja an sich keine Programmiersprache, also an sich auch nicht komplex. Die Kunst beim Skriptschreiben ist, die zahlreichen Miniprogrammen wie ls, cp, cat, awk, grep, sort usw. geschickt miteinander zu verknüpfen.

Ansonsten ist Bash-Scripting nicht mehr als bissel if-else :-)

In Deinem Fall musst Du eine paar Variablen füllen und dann durchgehen. Wir können das gerne hier mal angehen.

Joyrider
Beiträge: 4570
Registriert: 27.09.2006, 08:45

Re: Suche Linux-Coder für nen Shellscript

Beitragvon Joyrider » 12.03.2017, 16:22

Hab dir schon was per PM geantwortet.

Einen Teil davon kriege ich auch selber hin, allerdings hab ich aktuell zu wenig mit Linux/Unix gearbeitet, so dass ich mich einmal neu einarbeiten muss.

Es geht mir um folgendes:
Ich möchte einen USB-Stick (FAT32) anschließen, dieser wird fest auf /media/usb0 gemountet.
Auf dem Stick werden in verschiedenen Unterordnern 3 Dateitypen sein die ich automatisiert kopiert und sortiert haben möchte (JPG, MOV, TXT).
Diese sollen in die entsprechenden Unterordner in /home/backup/*Erweiterung*/*Anfangsbuchstabe* kopiert werden.

Beispiel:
Auf dem Stick sind die Dateien Mallorca01.jpg, Mallorca02.jpg, Mallorca03.mov, Hawai01.txt und Thailand01.mov.
Am Ende soll es so aussehen:
/home/backup/jpg/M/Mallorca01.jpg, /home/backup/jpg/M/Mallorca02.jpg
/home/backup/mov/M/Mallorca03.mov
/home/backup/mov/T/Thailand01.mov
/home/backup/txt/H/Hawai.txt

Die Unterordner mit den Buchstaben sollen nur erstellt werden, wenn sie nicht vorhanden sind. Gewünscht sind "0-9" als ein Ordner und jeweils die Buchstaben A bis Z einzeln.

Mein Problem ist das Filtern der Zahlen + Buchstaben, das Kopieren und das Auslesen/Beschränken auf den ersten Buchstaben bekomme ich hin.

Benutzeravatar
schmidtsmikey
Site Admin
Beiträge: 8969
Registriert: 08.12.2003, 21:50
Wohnort: Hamburg
Kontaktdaten:

Re: Suche Linux-Coder für nen Shellscript

Beitragvon schmidtsmikey » 13.03.2017, 19:13

Okay, Du musst also folgende Aufgaben lösen:

1. Dateiendung extrahieren
2. Anfangsbuchstaben extrahieren
3. Prüfung, ob Unterordner bereits existieren

Mein Vorschlag: ich poste hier die Grundlage, die wir zusammen erweitern. Das ist meine v1 Version. Um die Dateierweitung auszulesen, bringt die Shell eine recht eigensinnige Konstruktion ${filename##*.} mit sich.

Code: Alles auswählen

#!/bin/bash

echo "+++++++++++++++++++++++"
echo "    COPY SCRIPT v0.1   "
echo "+++++++++++++++++++++++"

# Quellverzeichnis, wo sich die Bilder befinden
BASE_PATH=~/Downloads/testCopy/usbStick

# Zielverzeichnis, wo die Bilder hinkopiert werden soll
TARGET_PATH=$BASE_PATH/myPictures

# Auslesen aller Dateien
for file in $(ls $BASE_PATH)
do
    echo $file

    # Dateiname und Erweiterung auslesen
    filename=$(basename "$file")
    ext="${filename##*.}"
   
    echo $ext
done


Dann implementiere doch mal in der for schleife den Part, um den ersten Buchstaben zu extrahiern.

Joyrider
Beiträge: 4570
Registriert: 27.09.2006, 08:45

Re: Suche Linux-Coder für nen Shellscript

Beitragvon Joyrider » 18.03.2017, 10:54

Ich melde mich anfang der Woche, aktuell hab ich leider viel um die Ohren.

Joyrider
Beiträge: 4570
Registriert: 27.09.2006, 08:45

Re: Suche Linux-Coder für nen Shellscript

Beitragvon Joyrider » 22.03.2017, 15:18

Meine Ansätze bisher:
1. find ./ -type f ! \( -iname "*.jpg" -o -iname "*.mkv" \)
2. Aktuell keine Ahnung
3. if ! [ -d "TARGET_PATH/*Buchstabe der in 2 ausgelesen wurde*"] ; then mkdir TARGET_PATH/*Buchstabe der in 2 ausgelesen wurde* fi


(ich habe aktuell leider den Kopf sehr voll, daher dauert es oft länger bis ich antworte.)


Zurück zu „Linux“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast