Script, Groß- in Kleinschreibung für vordefinierte Ordner
Guten Morgen,
ich benötige zwei Scripte, die Dateinamen von Groß- in Kleinschreibung umbenennen.
Das Ganze muss einmal auf Serverebene (CentOS 7) und in einer Datenbank stattfinden.
Hintergrund: Bildnamen müssen umbenannt werden. Es handelt sich um Dateien, die teilweise Großbuchstaben in Ihrem Dateinamen haben. Diese sollen einfach durch Kleinbuchstaben ersetzt werden. Es müsste rekursiv passieren, da dort einige Unterordner sind.
Der Ordner heißt "images" und dort sind für jedes Jahr separate Ordner angelegt.
Aus "mein-Bild.jpg" müsste dann also werden "mein-bild.jpg". Habt ihr eine Idee?
Besten Dank.
Viele Grüße
ich benötige zwei Scripte, die Dateinamen von Groß- in Kleinschreibung umbenennen.
Das Ganze muss einmal auf Serverebene (CentOS 7) und in einer Datenbank stattfinden.
Hintergrund: Bildnamen müssen umbenannt werden. Es handelt sich um Dateien, die teilweise Großbuchstaben in Ihrem Dateinamen haben. Diese sollen einfach durch Kleinbuchstaben ersetzt werden. Es müsste rekursiv passieren, da dort einige Unterordner sind.
Der Ordner heißt "images" und dort sind für jedes Jahr separate Ordner angelegt.
Aus "mein-Bild.jpg" müsste dann also werden "mein-bild.jpg". Habt ihr eine Idee?
Besten Dank.
Viele Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 334266
Url: https://administrator.de/contentid/334266
Ausgedruckt am: 24.11.2024 um 13:11 Uhr
7 Kommentare
Neuester Kommentar
Moin,
Im Filesystem ist es recht einfach:
zum Verständnis hilft man rename und man find
Bei der DB ist es im wesentlichen davon abhängig, welche DB Du verwendest. Bei (My)SQL könntest Du z.B.
verwenden
lks
Im Filesystem ist es recht einfach:
find ordnerpfad -depth -exec rename 'y/A-Z/a-z/' {} \;
zum Verständnis hilft man rename und man find
Bei der DB ist es im wesentlichen davon abhängig, welche DB Du verwendest. Bei (My)SQL könntest Du z.B.
UPDATE tabellenname SET spaltenname = LOWER(spaltenname)
lks
ich habe keine MariaDB hier, aber du hast glück, da maria
https://mariadb.com/kb/en/mariadb/regexp_replace/
kann. mit einem Regex ist das ein Kinderspiel
https://mariadb.com/kb/en/mariadb/regexp_replace/
kann. mit einem Regex ist das ein Kinderspiel
Hallo ,
kann man getrost von links nach rechts lesen !
Besseres Verstaendniss bekommst Du vielleicht so :
for i in * \\for schleife , i ist die Variable
do
mv $i | ` tr [:upper:][lower:]` \\ dem Kommando mv Variable $i wird ueber die Pipe eine Kommandosubstitution
(das ist der Befehl zwischen den Backticks) uebergeben. Und der Befehl tr ersetzt
die grossen Buchstaben gegen Kleine.
done
Bei deinem Befehl oben, könntest du dort noch kurz erklären, was und wo er genau was macht?
for i in *; do mv $i `echo $i | tr [:upper:] [:lower:]`; done
for i in *; do mv $i `echo $i | tr [:upper:] [:lower:]`; done
kann man getrost von links nach rechts lesen !
Besseres Verstaendniss bekommst Du vielleicht so :
for i in * \\for schleife , i ist die Variable
do
mv $i | ` tr [:upper:][lower:]` \\ dem Kommando mv Variable $i wird ueber die Pipe eine Kommandosubstitution
(das ist der Befehl zwischen den Backticks) uebergeben. Und der Befehl tr ersetzt
die grossen Buchstaben gegen Kleine.
done