Quantcast
Channel: Multimediaforum
Viewing all articles
Browse latest Browse all 4603

Dateien entprechend dem Namen verschieben und umbenennen

$
0
0
Hallo Linux-Profis,

ich habe kaum Linux-Erfahrung und versuche ein Skript zu schreiben, was folgendes erledigen soll.

Also, ich habe in einem Verzeichnis sehr viele Dateien. Diese heißen z.B. blah1, blah2, blah3, ..., blah27, foo1, foo2,..., foo27 usw. Die Dateinamen bestehen also i.a. aus einem Text-Präfix und Zahlen-Suffix. Das Skript sollte folgendes tun:

1) Verzeichnisse erstellen, die folgend aussehen: 1.01, 1.02, ..., 1.27
2) Alle Dateien anhand deren Namen in die entsprechenden Verzeichnisse verschieben und dabei das Suffix löschen. z.B. mv blah27 1.27/blah; mv foo2 1.02/foo usw.

Was ich mir bis überlegt habe sieht ungefähr so aus:
Code:

#!/bin/bash

for ((i=27;i>=1;i--)) # Schleife rückwärts, damit z.B. Dateien mit Suffix "23" nicht als Dateien mit Suffix "3" erkannt werden
do
  mkdir 1.$i # erstelle das entsprechende Verzeichnis
  mv *$i 1.$i # verschiebe die Dateien ins Verzeichnis
  cd 1.$i
# an dieser Stelle muss ich irgendwie alle Dateinamen in ein Liste "filenamelist" zusammenfassen
  for filename in $filenamelist
  do
    mv $filename ${filename}//${i} # lösche das Suffix $i
  done
  cd ..
done

Natürlich funktioniert dieses Skript nicht. Schon in der ersten Zeile "for ((i=27;i>=1;i--))" bekomme ich die Fehlermeldung
Zitat:

Syntax error: Bad for loop variable
, wenn ich das Skript in eine Datei reinschreibe und dann mit sh ./script.sh ausführe. Dieso for-Schleife habe ich ergoogelt. Lustigerweise funktioniert die for-Schleife, wenn man sie direkt in die Kommandozeile eingibt.

Hier ist z.B. das Minimalbeispiel für die for -Schleifen (copy-paste aus dem Netz):
Code:

for ((i=9;i>=1;i--))
do
  echo "Welcome $i times"
done

Dieses Beispiel funktioniert in der Kommandozeile und verursacht den oben genannten Fehler, wenn ich aus mit sh ./script.sh ausführe.

Ich weiß, es ist 'ne Menge Zeug. Deswegen freue ich mich auf jeden Hinweis und Topp, was ihr habt und erwarte keine Fertiglösung.

Grüße

Viewing all articles
Browse latest Browse all 4603