Forum: PC-Programmierung Linux Dateiendungen in Kleinbuchstaben


von Rudi Mänter (Gast)


Lesenswert?

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

von Udo K. (udok)


Lesenswert?

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

: Bearbeitet durch User
von Daniel A. (daniel-a)


Lesenswert?

(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.

von Rudi Mänter (Gast)


Lesenswert?

Daniel A. schrieb:
> (Ab bash 4.0 oder neuer):

besten Dank Daniel!

von Herbert B. (Gast)


Lesenswert?

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.

von Udo K. (udok)


Lesenswert?

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...

von Herbert B. (Gast)


Lesenswert?

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.

von Udo K. (udok)


Lesenswert?

Schön, dann gibt es neben dem util-linux rename und den Gnu rename auch 
noch das Perl rename.  Wer soll da noch den Durchblick haben?

von DPA (Gast)


Lesenswert?

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:~$

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

DPA schrieb:
> Meine distro hat gar kein rename

Mal gut, dass Du die "distro" geheim hältst. So kann man wenigstens gar 
nichts mit Deinem Beitrag anfangen. ;-)

von DPA (Gast)


Lesenswert?

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...

von Herbert B. (Gast)


Lesenswert?

Renametools gibts so viele wie Atome im Universum.
mmv ist auch nicht schlecht.

Mit GUI gibts auch genügend.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.