Ubuntu - Sonderzeichen aus Dateinamen entfernen
Servus zusammen,
ich habe hier eine Fotosammlung auf nem Webserver mit root-Zugriff liegen.
Ich würde gerne rekursiv die Dateien umbenennen, da dort etliche Dateinamen dabei sind, die von der Galerie-Software nicht "gern gesehen werden"...
Leerzeichen in Dateinamen, ok.
.JPG in .jpg bekam ich auch noch hin.
Aber wie kann ich bitte solche Dateinamen "normalisieren" ?
n_img_6750 [800x600].jpg
Wie bekomme ich mit REGEX hin, daß die eckigen Klammern mit ersetzt werden ?
ersetzt nur das 800x600 durch 7 Leerzeichen, läßt aber die stehen.
Kann mir da jemand helfen ?
Grüße, Henere
ich habe hier eine Fotosammlung auf nem Webserver mit root-Zugriff liegen.
Ich würde gerne rekursiv die Dateien umbenennen, da dort etliche Dateinamen dabei sind, die von der Galerie-Software nicht "gern gesehen werden"...
Leerzeichen in Dateinamen, ok.
find . -depth -execdir rename 's/ /_/g' {} +
.JPG in .jpg bekam ich auch noch hin.
Aber wie kann ich bitte solche Dateinamen "normalisieren" ?
n_img_6750 [800x600].jpg
Wie bekomme ich mit REGEX hin, daß die eckigen Klammern mit ersetzt werden ?
find . -depth -execdir rename 's/'[800x600]'/ /g' {} +
ersetzt nur das 800x600 durch 7 Leerzeichen, läßt aber die stehen.
Kann mir da jemand helfen ?
Grüße, Henere
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 359793
Url: https://administrator.de/contentid/359793
Ausgedruckt am: 22.11.2024 um 04:11 Uhr
3 Kommentare
Neuester Kommentar
Hiermit kannst du alle "[" und "]" mit sed löschen:
Du kannst natürlich auch mehr sonderzeichen in den string schreiben die entfernt werden sollen und find -depth für unterordner nutzen.
find . -type f -iname "*[*" | while IFS= read -r line; do mv "$line" "$(printf %s "$line" | sed -re 's/(\[|\])//g')"; done;
Du kannst natürlich auch mehr sonderzeichen in den string schreiben die entfernt werden sollen und find -depth für unterordner nutzen.
Moin,
Du muß diese Zeichen auch "escapen".
find . -depth -execdir rename 's/\[800x600\]/ /g' {} +
ergibt:
lks@nana:~/tmp/test$ echo -e "a\ne\ni\no\nu\n" | xargs -l1 -I X touch blXblX[800x600].jpg
lks@nana:~/tmp/test$ ls -l
insgesamt 8
drwxrwxr-x 2 lks lks 4096 Jan 4 11:14 .
drwxrwxr-x 11 lks lks 4096 Jan 4 11:05 ..
-rw-rw-r-- 1 lks lks 0 Jan 4 11:14 blabla[800x600].jpg
-rw-rw-r-- 1 lks lks 0 Jan 4 11:14 bleble[800x600].jpg
-rw-rw-r-- 1 lks lks 0 Jan 4 11:14 blibli[800x600].jpg
-rw-rw-r-- 1 lks lks 0 Jan 4 11:14 bloblo[800x600].jpg
-rw-rw-r-- 1 lks lks 0 Jan 4 11:14 blublu[800x600].jpg
lks@nana:~/tmp/test$ find . -depth -execdir rename 's/\[800x600\]/ /g' {} +
lks@nana:~/tmp/test$ ls -l
insgesamt 8
drwxrwxr-x 2 lks lks 4096 Jan 4 11:19 .
drwxrwxr-x 11 lks lks 4096 Jan 4 11:05 ..
-rw-rw-r-- 1 lks lks 0 Jan 4 11:14 blabla .jpg
-rw-rw-r-- 1 lks lks 0 Jan 4 11:14 bleble .jpg
-rw-rw-r-- 1 lks lks 0 Jan 4 11:14 blibli .jpg
-rw-rw-r-- 1 lks lks 0 Jan 4 11:14 bloblo .jpg
-rw-rw-r-- 1 lks lks 0 Jan 4 11:14 blublu .jpg
lks@nana:~/tmp/test$
lks