Ungerade Dateien Filtern / For-Schleife

N

Noobi

Jungspund
Hallo Jungs,

ich hoffe ihr könnt mir weiterhelfen. Hier die Aufgabe:

In das Verzeichnis "/pfad/zu/den/dateien" wechseln. Dort stehen 20 Dateien, die alle mit einer Nummer vorne beginnen. Für jede ungerade Dateinummer soll im Unterverzeichnis "archive" ein weiteres Unterverzeichnis angelegt werden. Das Verzeichnis soll den Namen der Dateinummer tragen. Verwende dafür bitte eine "FOR-Schleife".

Bin am verzweifeln



Vielen Dank für eure Hilfe
 
Das würde z. B. so gehen:
Code:
#!/bin/sh

cd /pfad/zu/den/dateien

# Für jede Datei (bzw. jeden Ordner) in diesem Verzeichnis:
for file in *; do
  # Nummer mithilfe von sed extrahieren:
  number="`echo "${file}"|sed -n 's|^\([[:digit:]]\+\).*|\1|p'`"
  if [ -z "${number}" ]; then
    # Ungültiger Dateiname, keine Nummer am Anfang
    echo "Invalid filename [${file}]"
    continue
  elif [ `expr "${number}" % 2` -eq 1 ]; then
    # Ungerade Zahl, Verzeichnis anlegen:
    mkdir -p "archive/${number}"
  fi
done
 
Zuletzt bearbeitet:
Cool Danke.
Ich werds gleich einmal versuchen.
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

MHM also das skript funktioniert, aber es kommt immer InvaliedFileName was wohl heißen wird, dass $Numer leer ist.

Zur Info die Files in dem verzeichnis heißen 001_TEST_TEST, 003_TEST_TEST, ....020_TEST_TEST
 
Zuletzt bearbeitet:
Dann probiers einfach ohne sed, sondern mit cut:
Code:
#!/bin/sh

cd /pfad/zu/den/dateien

# Für jede Datei (bzw. jeden Ordner) in diesem Verzeichnis:
for file in *; do
  # Nummer mithilfe von cut extrahieren - prüft nicht, ob das wirklich eine Nummer ist!
  number="`echo "${file}"|cut -d _ -f 1`"
  if [ -z "${number}" ]; then
    # Ungültiger Dateiname, keine Nummer am Anfang?
    echo "Invalid filename [${file}]"
    continue
  elif [ `expr "${number}" % 2` -eq 1 ]; then
    # Ungerade Zahl, Verzeichnis anlegen:
    mkdir -p "archive/${number}"
  fi
done
 

Ähnliche Themen

Aura for PHP Konfigurationsproblem

Ordnerdurchlauf for-Schleife & find MIT Leerzeichen

Shell Problem

Konqueror: Max. 7 Dateien auf NTFS-Festplatte

Von Streamingserver angelegte Dateien umbenennen + in Verzeichnisse einordnen

Zurück
Oben