Ungerade Dateien Filtern / For-Schleife

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Noobi, 23.06.2009.

  1. Noobi

    Noobi Jungspund

    Dabei seit:
    26.05.2009
    Beiträge:
    11
    Zustimmungen:
    0
    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
     
  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 Tblue, 23.06.2009
    Zuletzt bearbeitet: 23.06.2009
    Tblue

    Tblue Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    188
    Zustimmungen:
    0
    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
     
  4. #3 Noobi, 23.06.2009
    Zuletzt bearbeitet: 23.06.2009
    Noobi

    Noobi Jungspund

    Dabei seit:
    26.05.2009
    Beiträge:
    11
    Zustimmungen:
    0
    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
     
  5. Tblue

    Tblue Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    188
    Zustimmungen:
    0
    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
     
  6. Noobi

    Noobi Jungspund

    Dabei seit:
    26.05.2009
    Beiträge:
    11
    Zustimmungen:
    0
    JAAAA es funktioniert....

    Vielen DANK!!!
     
Thema:

Ungerade Dateien Filtern / For-Schleife

Die Seite wird geladen...

Ungerade Dateien Filtern / For-Schleife - Ähnliche Themen

  1. Gerade und Ungerade Zahlen ermitteln.

    Gerade und Ungerade Zahlen ermitteln.: Hi, und zwar habe ich diesmal folgendes Problem: Ich habe eine Rechnung in der am ende logischerweise ein Ergebnis erscheint. Nun möchte...
  2. User sollen Dateien speichern und ändern, aber nicht neu anlegen dürfen

    User sollen Dateien speichern und ändern, aber nicht neu anlegen dürfen: Hallo liebe Helfer, welche Einstellungen muss ich in der smb.conf bzw. unter Linux vornehmen, damit User vorhandene Dateien öffnen und speichern...
  3. Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen

    Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen: Hallo, ich habe ein Verzeichnis, darin enthalten sind mehrere Dateien. Nun möchte ich alle Dateien (Parameter $1) gegen eine konstante Datei...
  4. Dateien selektieren und zählen

    Dateien selektieren und zählen: Hallo, das ist mein erster Beitrag, bitte entschuldigt, falls nicht alles richtig geschrieben ist. Ich muss meine erste Hausaufgabe als...
  5. Benötige Hilfe- Dateien vergleichen

    Benötige Hilfe- Dateien vergleichen: Hallo, für eine Arbeit an der Uni muss ich einige viele Bilder miteinander vergleichen, was ich gerne durch eine Automatisierung etwas...