567 Stimmen

Wie benenne ich die Erweiterung einer Reihe von Dateien um?

In einem Verzeichnis habe ich ein Bündel von *.html Dateien. Ich würde sie gerne alle umbenennen in *.txt

Wie kann ich das tun? Ich verwende die Bash-Shell.

0voto

Rohith Punkte 57

Hier ist eine Lösung, die AWK verwendet. Stellen Sie sicher, dass die Dateien im Arbeitsverzeichnis vorhanden sind. Andernfalls, cd in das Verzeichnis, in dem sich die html-Dateien befinden, und führen Sie dann den folgenden Befehl aus:

for i in $(ls | grep .html); do j=$(echo $i | grep -oh "^\w*." | awk '{print $1"txt"}'); mv $i $j; done

0voto

Pyetro Punkte 125

Ich habe folgenden Code in meine .bashrc geschrieben

alias find-ext='read -p "Path (dot for current): " p_path; read -p "Ext (unpunctured): " p_ext1; find $p_path -type f -name "*."$p_ext1'
alias rename-ext='read -p "Path (dot for current): " p_path; read -p "Ext (unpunctured): " p_ext1; read -p "Change by ext. (unpunctured): " p_ext2; echo -en "\nFound files:\n"; find $p_path -type f -name "*.$p_ext1"; find $p_path -type f -name "*.$p_ext1" -exec sh -c '\''mv "$1" "${1%.'\''$p_ext1'\''}.'\''$p_ext2'\''" '\'' _ {} \;; echo -en "\nChanged Files:\n"; find $p_path -type f -name "*.$p_ext2";'

In einem Ordner wie "/home/<user>/example-files" mit dieser Struktur:

  • /home/<Benutzer>/example-files:
    • file1.txt
    • file2.txt
    • datei3.pdf
    • file4.csv

Die Befehle würden sich folgendermaßen verhalten:

~$ find-text
Path (dot for current): example-files/
Ext (unpunctured): txt

example-files/file1.txt
example-files/file2.txt

~$ rename-text
Path (dot for current): ./example-files
Ext (unpunctured): txt
Change by ext. (unpunctured): mp3

Found files:
./example-files/file1.txt
./example-files/file1.txt

Changed Files:
./example-files/file1.mp3
./example-files/file1.mp3
~$

0voto

Lloyd Punkte 7804

Sie können ein Tool verwenden, das für die Umbenennung von Dateien in großen Mengen entwickelt wurde, z. B. renamer .

Um alle Dateierweiterungen im aktuellen Ordner umzubenennen:

$ renamer --find ".html" --replace ".txt" --dry-run * 

Viele weitere Anwendungsbeispiele aquí .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X