Linux Dateiendungen in Kleinbuchstaben

Gast #7171168
Hi

Ich suche nach einer einfachen Methode unter Linux die Endungen aller 
Dateien in einem Verzeichnis in kleinbuchstaben umzuwandelnund bei 
Überschneidungen soll am Dateinamen eine Nummer angehängt werden.
Beispiel:

peter.DOCX
paul.pdf
paul.PDF

Resultat in etwa so:

peter.docx
paul.pdf
paul_001.pdf
Gast #7171182
Hier bitte schön:
1
for i in *; do j=${i,,}; mv -f $i $j; done

Die Umbenennung bei mehrfachen Dateien und den Umgang mit Leerzeichen 
darfst du dir aber selber programmieren...

Gruss,
Udo
#7171201
(Ab bash 4.0 oder neuer):
1
#!/bin/bash
2

3
for file in *.*
4
do
5
  name="${file%.*}"
6
  ext="${file##*.}"
7
  lower_ext="${ext,,}"
8
  if [ "$ext" != "$lower_ext" ] && [ -f "$name.$ext" ]
9
  then
10
    i=0
11
    suffix=
12
    cmd=
13
    while [ -f "$name.$ext" ]
14
    do
15
      cmd="mv --no-clobber \"$name.$ext\" \"$name$suffix.$lower_ext\""
16
      mv --no-clobber "$name.$ext" "$name$suffix.$lower_ext"
17
      i=$((i + 1))
18
      suffix="$(printf "_%03d" "$i")"
19
    done
20
    echo "$cmd"
21
  fi
22
done

Was noch zu beachten ist, bei paul_001.pdf paul_001.PDF macht das oben 
paul_001_001.PDF draus. Aber bei paul.pdf paul_001.pdf paul.PDF wird 
paul_002.pdf draus.
Gast #7171953
Zum Testen (nix wird umbenannt nur neuer Name angezeigt):
rename -n 's/(^.*)(\..*$)/$1\L$2/' ./*

Wenn man sicher ist dass das oben funktioniert ohne "-n" aufrufen.
Gast #7175628
Udo K. schrieb:
> Herbert B. schrieb:
>> Zum Testen (nix wird umbenannt nur neuer Name angezeigt):
>> rename -n 's/(^.*)(\..*$)/$1\L$2/' ./*
>
> Das tut bei mir gar nichts.  Ich habe hier das util-linux rename
> installiert, und nicht das GNU rename...
$ apt show rename
Package: rename
Version: 1.30-1
Priority: optional
Section: universe/perl
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Perl Group 
<pkg-perl-maintainers@lists.alioth.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 55,3 kB
Depends: perl:any
Homepage: https://metacpan.org/release/File-Rename
Download-Size: 20,2 kB
APT-Manual-Installed: yes
APT-Sources: http://de.archive.ubuntu.com/ubuntu jammy/universe amd64 
Packages
Description: Perl-Erweiterung zum Umbenennen mehrerer Dateien
 Dieses Paket stellt eine Perl-Schnittstelle zum Umbenennen mehrerer
 Dateien (File::Rename) und das Befehlszeilenwerkzeug »rename« bereit.
 Letzteres soll die früher mit dem Paket perl verteilte Version 
ersetzen.
Gast #7175699
Meine distro hat gar kein rename
1
abre2@PSTNABRE2A:~$ apt-file search bin/rename
2
plasmidid: /usr/share/plasmidid/bin/rename_from_fasta.sh
3
rename-flac: /usr/bin/rename-flac
4
trace2dbest: /usr/bin/rename_file.pl
5
abre2@PSTNABRE2A:~$
Gast #7175904
debian/devuan. Ich habe nochmal nachgesehen, ich habe diese doch in den 
util-linux und rename Paketen, ich habe sie nur nicht gesehen, weil ich 
nach einem Binary bin/rename gesucht habe, aber die Pakete nutzen das 
alternatives system, um einen Symlink zu setzen.

Wobei, eigentlich macht es keinen sinn, dass rename.ui und 
file-rename/prename beide rename anbieten. Die Tools haben ja eine 
komplett andere Syntax, da hätte man das besser gelassen...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 4 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.