Zeichenkette abschneiden

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von xeeen, 07.05.2007.

  1. #1 xeeen, 07.05.2007
    Zuletzt bearbeitet: 07.05.2007
    xeeen

    xeeen Mitglied

    Dabei seit:
    24.04.2007
    Beiträge:
    32
    Zustimmungen:
    0
    Hi Community,

    folgendes:

    Ich würde gerne Verzeichnisnamen umbenennen.
    Die Verzeichnisse werden automatisch erstellt, dynamisch benannt und enden auf *.png.

    Ein Verzeichnis sieht also zb. so aus:

    ../0705071350.png/

    Hier würde ich nun die letzten 4 Zeichen (mit awk?) abscheiden.
    bzw. alles ab dem Punkt.

    Wie funktioniert das? Vor allem wenn ich meherer Verzeichnisse habe, und diese alle umbenennen möchte...

    danke!
     
  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 Fallout, 07.05.2007
    Fallout

    Fallout Doppel-As

    Dabei seit:
    02.03.2007
    Beiträge:
    120
    Zustimmungen:
    0
    Hi,

    Am schönsten wäre ein Einzeiler ähnlich wie:
    Code:
    find . -type d -name '*.png' -exec mv {} [u][i]'{} ohne .png ;-)'[/i][/u] \;
    jedoch geht mir da die Puste aus, wie man den find-eigenen Bezeichner um etwas kürzt.

    Daher vielleicht eher die Lösung:
    Code:
    mydirs=$(find . -type d -name '*.png')
    for mydir in $mydirs; do
     mv -v $mydir ${mydir%\.*}
    done
    Da dürfen dann aber auch keine Verzeichnisse mit blanks vorkommen (was unter linux sowieso unüblich ist).

    Gruß Daniel
     
  4. #3 Wolfgang, 07.05.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Code:
    find . -depth -type d -name '*.png' |while read file
    do
    mv "$file"  "${file%\.*}"
    done
    
    Klappt auch bei Leerzeichen, allerdings dürfen keine Steuerzeichen im Verzeichnisname vorkommen.

    Gruß Wolfgang
     
  5. #4 Karlhans, 09.05.2007
    Karlhans

    Karlhans Jungspund

    Dabei seit:
    22.04.2007
    Beiträge:
    16
    Zustimmungen:
    0
    Mal dazwischengequetscht, wie loesche ich generell z.B. die letzen 4 Zeichen, wenn es im Dateinamen keine eindeutige Regelmaessigkeit gibt? Also sowas wie:

    filenxhz
    file.nxhz
    fi_nx.hz

    wird zu

    file
    file.
    fil_n
     
  6. #5 Wolfgang, 09.05.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    In der Bash:
    Code:
    find . -type f |while read file
    do
    mv "$file"  "${file%????}"
    done
    Gruß Wolfgang
     
  7. #6 Karlhans, 09.05.2007
    Karlhans

    Karlhans Jungspund

    Dabei seit:
    22.04.2007
    Beiträge:
    16
    Zustimmungen:
    0
    Okay Danke.
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Zeichenkette abschneiden

Die Seite wird geladen...

Zeichenkette abschneiden - Ähnliche Themen

  1. Zeichenkette per Skript an shell übergeben

    Zeichenkette per Skript an shell übergeben: [gelöst]Zeichenkette per Skript an shell übergeben Hallo Leute, sitze momentan etwas ratlos vor einem Shell-Skript (Bin kompletter Anfänger...
  2. Zeichenkette per Shellskript ausschneiden

    Zeichenkette per Shellskript ausschneiden: Hallo, habe folgendes Problem : Ich möchte Dateien in Unterordner verschieben, abhängig von einer Zeichenkette im Dateinamen. Beispiel:...
  3. Zeichenkette mit Nullen auffüllen

    Zeichenkette mit Nullen auffüllen: Hallo zusammen, ich möchte in einem text-file nach Zeichenketten weniger als 14Zeichen suchen und die jeweiligen Zeichenkette mit führenden...
  4. Zeichenkette umwandeln?

    Zeichenkette umwandeln?: Halli Hallo, habe mich bezüglich meines Problems schon schlau gemacht, jedoch hat bisher keine der Möglichkeiten bei mir Funktioniert. Also...
  5. noch eine zeichenkette^^

    noch eine zeichenkette^^: Hallo nochmal!:rolleyes: Wir haben leider noch ein Problem... nur eine andere Aufgabe^^: Aber auch hier gibt es einen segmentation fault......