Dateiendung in Kleinschrift

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von uhbuntuh, 26.09.2007.

  1. #1 uhbuntuh, 26.09.2007
    uhbuntuh

    uhbuntuh Jungspund

    Dabei seit:
    26.09.2007
    Beiträge:
    12
    Zustimmungen:
    0
    Hallo!
    Ich suche ein Skript um großgeschriebene Dateienungen in Kleinschrift zu bringen. Also ".TXT" -> ".txt".

    Habe hier im Forum auch schon nützliches gefunden:
    Code:
    for F in $(find -type f -name "*TXT");
    do
    	mv  "$F" "${F%\.TXT}.txt";
    done
    Allerdings soll das ganze nicht nur für txt-Dateien gehen, sondern für beliebige Dateiendungen.

    Wie kann ich die Dateiendung mit bash auslesen? Oder hat jemand ein solches Skript bereits parat?

    Vielen Dank!
     
  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. caba_

    caba_ (caba{_,}|manuw)

    Dabei seit:
    07.08.2007
    Beiträge:
    334
    Zustimmungen:
    0
    hilft da weiter....
     
  4. #3 Wolfgang, 26.09.2007
    Zuletzt bearbeitet: 26.09.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Wenn du keine Leerzeichen erwartest, sollte folgender ungetesteter Schnellschuß laufen:
    Code:
    for i in $(find ./ -type f); do echo "$i" "${i%\.*}.$(echo ${i##.*\.}|tr 'A-Z' 'a-z')";done
    
    echo durch mv ersetzen
    Mit Leerzeichen, arbeite mit while read. Das Prinzip bleibt das gleiche.

    Gruß Wolfgang
    EDIT Lösung für Leerzeichen
    Code:
    find /path/to/files -type f |while read file;
    do
    echo "$file" "${file%\.*}.$(echo ${file##.*\.}|tr 'A-Z' 'a-z')";done
    
     
  5. #4 Gott_in_schwarz, 26.09.2007
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Eine Lösung zum gruseln :s

    Hier das ganze, wenn man noch nie was von 'tr' gehört hat und nicht wirklich mit dem ${var%} Dingens umgehen kann :D
    (Funktioniert auch nur, wenn keine Leerzeichen vorkommen)
    Code:
    for file in $(find . -type f -regex '.+\.[A-Z]+');
    do
        datei_name=${file%\.*}
        datei_endung=$(echo $file|egrep -o '\.[[:upper:]]+')
        endung_lower=$(echo $datei_endung|sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/')
        neu="$datei_name$endung_lower"
        mv $file $neu
    done
    Hm, dieses 'tr' scheint verdammt praktisch zu sein. 'tr [:upper:] [:lower:]' schreibt sich _wesentlich_ leichter als das gesamte Alphabet (doppelt :/) mit dem 'y' Kommando von sed :D
    lg euer inzwischen in 'man bash' vertiefte Gott in schwarz
     
  6. #5 uhbuntuh, 26.09.2007
    Zuletzt bearbeitet: 26.09.2007
    uhbuntuh

    uhbuntuh Jungspund

    Dabei seit:
    26.09.2007
    Beiträge:
    12
    Zustimmungen:
    0
    Ich verneige mich zutiefst. Vielen Dank für die Hilfe!
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    ich habe das ganze jetzt in ein kleines skript gepackt.
    wäre nett wenn ihr mir sagen könnten, ob das so in ordnung ist oder was man noch verbessern kann.
    sollte man z.B. die gefundenen dateinamen anstatt einer datei in ein array o.ä. speichern?

    Code:
    temp="~endung_klein.txt"
    
    find ./ -type f | while read file;
    do
    if [ "${file##.*\.}" != "$(echo ${file##.*\.}|tr 'A-Z' 'a-z')" ]; then echo "$file" | tee -a $temp; fi;done
    
    while [ ! "$go" = "y" ]
    do
    	echo -n "Dateiendungen in Kleinschrift konvertieren? [y/n]: "; read go
    	if [ "$go" = "n" ]; then 
    		if [ -f $temp ]; then rm $temp; fi
    		exit 0; 
    	fi
    done
    
    cat $temp | while read file;
    do
    mv "$file" "${file%\.*}.$(echo ${file##.*\.}|tr 'A-Z' 'a-z')";done
    
    if [ -f $temp ]; then rm $temp; fi
     
  7. smg

    smg Regex Fetischist

    Dabei seit:
    20.05.2007
    Beiträge:
    195
    Zustimmungen:
    0
    Ort:
    /home/stephan/
    Zauberwort ist tr. man tr.

    Groß -> Klein:
    Code:
    tr '[:upper:]' '[:lower:]'
     
  8. Anzeige

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

Dateiendung in Kleinschrift

Die Seite wird geladen...

Dateiendung in Kleinschrift - Ähnliche Themen

  1. gentoo-filemanager neue Dateiendung mit bestimmter SW öffnen lassen

    gentoo-filemanager neue Dateiendung mit bestimmter SW öffnen lassen: Hallo Kennt sich hier jemand mit dem filemanger gentoo aus ? Ich hab ejetzt geschlagene 1Std versucht, ihn zu überreden eine *.odt zu...
  2. Rekursives Ändern einer bestimmten Dateiendung

    Rekursives Ändern einer bestimmten Dateiendung: Hallo Leute, ich habe meine Musiksammelung komplett im Ogg-Vorbis-Format gespeichert. Seit neustem neigen aber alle möglichen Programme dazu,...
  3. dateiendung xx.r00

    dateiendung xx.r00: Hallo! Habe mir ein programm aus dem netz gesaugt und die rar entpackt. Jetzt hab ich die ordner disk 1 und disk 2 vor mir und darin befinden...
  4. Dateiendungen Debian

    Dateiendungen Debian: Hallo, wenn ich ein ls mache haben bei mir die mp3 dateien rosa farbe. Für öffnen für mp3 dateien ist bei mir vlc verknüpft. Ich mochte gerne...
  5. Dateiendungen verändern

    Dateiendungen verändern: Hi, ich habe noch nicht viel mit Shell-Script gemacht und versuche nun Ordner umzubennen die zB ordner1_xlst heißen, jetzt soll er aber die...