Zeichenkette abschneiden

X

xeeen

Mitglied
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!
 
Zuletzt bearbeitet:
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
 
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
 
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
 
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

In der Bash:
Code:
find . -type f |while read file
do
mv "$file"  "${file%????}"
done

Gruß Wolfgang
 

Ähnliche Themen

3 letzte Zeile löschen oder ab Zeile 55 Muster suchen und löschen

div. Fragen zur Gestaltung

andere create mask für unterordner

Xubuntu - AVR32-linux crosscompile sqlite

Backup Skript automatisch ausführen mit udev

Zurück
Oben