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.
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.
Wenn Sie PERL bevorzugen, gibt es ein kurzes PERL-Skript (ursprünglich geschrieben von Larry Wall, dem Erfinder von PERL), das genau das tut, was Sie hier wollen: tips.webdesign10.com/files/rename.pl.txt .
Für Ihr Beispiel sollte das Folgende genügen:
rename.pl 's/html/txt/' *.html
Sie können auch eine Funktion in der Bash erstellen und sie zu .bashrc
oder ähnliches und verwenden Sie es dann, wo immer Sie wollen.
change-ext() {
for file in *.$1; do mv "$file" "$(basename "$file" .$1).$2"; done
}
Verwendung:
change-ext css scss
Quelle des Codes in der Funktion: https://stackoverflow.com/a/1224786/6732111
Leider ist es nicht trivial, das portabel zu machen. Sie brauchen wahrscheinlich ein bisschen expr Magie.
for file in *.html; do echo mv -- "$file" "$(expr "$file" : '\(.*\)\.html').txt"; done
Entfernen Sie das Echo, wenn Sie zufrieden sind, dass es das tut, was Sie wollen.
Editar: basename
ist in diesem speziellen Fall wahrscheinlich etwas besser lesbar, obwohl expr
ist im Allgemeinen flexibler.
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.