Die Backticks werden in Ihrem Kommentar nicht angezeigt. Sie sollten dies wahrscheinlich als Antwort hinzufügen oder Ihre Frage bearbeiten, um Ihre Lösung einzuschließen.
Paul R
1
Die beste schnelle Lösung, die ich je gefunden habe, war die Verwendung des integrierten Automators. In diesem Artikel finden Sie schrittweise Anleitungen
nilay
Ich würde die Antwort von nilay abstimmen, wenn es kein Kommentar wäre ...
Aber erlaubt das auch den Austausch von Regex? Dies scheint nur eine Art verbessertes Shell-Globbing zu sein.
Mathe
4
@brubelsabs: Ja, zmv kann reguläre Ausdrücke ersetzen . Für Dateien, die übereinstimmen *user*.html, ändern Sie die Erweiterung auf .htmlund ändern Sie alle Vorkommen rcauf final: zmv '(*user*).htm' '${1//rc/final}.html' @ghoppe: Ich denke, das ZMV- Beispiel in Ihrer Antwort muss -woder Klammern um den Platzhalter.
Chris Johnsen
Ich mag diesen Vorschlag wirklich, weil Sie auf einem Mac nichts extra installieren müssen (wie brauen), aber es erlaubt Ihnen, die einfache mmv-ähnliche Syntax zu verwenden.
Hay
+1 Schön. Einige Unterschiede zu regulären Ausdrücken, an die ich gewöhnt bin: 1) Benutze *anstatt .*alles zu bekommen. *?scheint nicht gierig zu wirken .*?. 2) für mich ^und $für Anfang und Ende der Zeichenfolge schien es nichts zu stimmen
user56reinstatemonica8
21
Plump mich:
for i in *.yourfiles; do mv "$i" "`echo $i | sed 's/old/new/g'`"; done
Und wenn du es so benutzen willst, wie ich es oft tue:
rename 's/old/new/' *.files
Ich empfehle, dieses kleine Skript in ~ / bin / umzubenennen:
#!/usr/bin/env zsh
SUBSEXPR=$1
shift
for i in $@; do mv $i `echo "$i" | sed $SUBSEXPR`; done
Ihr Skript funktioniert bei mir nicht "ACDC umbenennen AC-DC ACDC *" result-> "ssed: ACDC kann nicht gelesen werden: Keine solche Datei oder kein solches Verzeichnis", ich habe das Umbenennen util von Linux aus installiert und jetzt funktioniert es anwyay
holms
5
Sie können versuchen, MacPorts zu installieren und das renameutilsPaket zu installieren :
renameutils @ 0.10.0 (sysutils)
Bei renameutils handelt es sich um eine Reihe von Programmen, mit denen das Umbenennen von Dateien schneller und einfacher wird
Ich habe nicht gesagt, dass es tut. qmvsieht aus wie es den Job macht.
Lajuette
qmvist ein großartiges Tool, obwohl es für einfache Umbenennungen von Regex ein bisschen zu viel Arbeit ist, ist es fantastisch, um eine große Anzahl beliebiger Dateien intelligent zu benennen und zu verschieben
sapht
4
Es gibt verschiedene Umbenennungsversionen . Sie suchen anscheinend nach dem Perl-basierten.
Eine Version dieses Dienstprogramms wird mit dem Modul File :: Rename Perl geliefert. Du kannst es mit so etwas wie installieren sudo cpan -i File::Rename.
Oder Sie könnten mit dem Umbenennen von Debians Perl- Paket gehen . Es ist nur eine einzige Datei zum Herunterladen. Platziere es wo immer du willst und ändere es so, dass es ausführbar ist.
Eine Alternative ist das zmv- Tool, das mit zsh geliefert wird . Es hat nicht die gleiche Syntax, wird jedoch mit Ihrem Betriebssystem geliefert und kann viele der häufigsten Fälle problemlos lösen.
Die Perl-Umbenennung ist das, was diese Frage als Beispiel zeigt.
Quack Quijote
2
Auf Macs verwende ich Aristoteles Pagaltzis 'frei erhältliches Programm rename, das wie Debians Perl-basiert ist. Sie können es hier bekommen . Oder besuchen Sie hier , um es zuerst zu lesen - immer eine gute Idee.
Sie müssen das irgendwo in Ihr einfügen $PATHund es ausführbar machen ( chmod +x rename) und dann können Sie loslegen.
Wenn Sie nach einer grafischen Benutzeroberfläche suchen, versuchen Sie es mit Name Mangler . Es hat eine "Vorschau" -Funktion, die zeigt, was passiert, wenn Sie mit dem Umbenennen weitermachen.
Ich ging einfach weiter und fand meinen Favoriten, den ich als Perl-Umbenennung bezeichnet habe, indem ich den renameBefehl gab, bei dem die Hilfe so aussieht:
Usage: rename [-v] [-n] [-f] perlexpr [filenames]
So weiß ich, dass ich den habe, den ich mag.
Für Mac gibt es sogar in Homebrew andere, bei denen ich mich nur vage an Probleme erinnere. Es ist also nicht das renamePaket und es ist auch nicht das Nongnu- renameutilsPaket.
rename
unter Mac OS X: macosxhints.com/article.php?story=20050630022203488Antworten:
Mit Homebrew , einem Paketmanager für OS X:
Dann können Sie dieselben
rename
Befehle wie unter Linux ausführen.quelle
rename-5.22
(wobei 22 die installierte Version ist) anstelle vonrename
sudo mv /opt/local/bin/rename-XXX /opt/local/bin/rename
Setze die Macht von ZSH mit Bedacht ein (tippe
zsh
das Terminal ein, wenn du eine der armen Seelen bist, die es nicht standardmäßig benutzen):ZMV folgt der MMV-Syntax .
quelle
*user*.html
, ändern Sie die Erweiterung auf.html
und ändern Sie alle Vorkommenrc
auffinal
:zmv '(*user*).htm' '${1//rc/final}.html'
@ghoppe: Ich denke, das ZMV- Beispiel in Ihrer Antwort muss-w
oder Klammern um den Platzhalter.*
anstatt.*
alles zu bekommen.*?
scheint nicht gierig zu wirken.*?
. 2) für mich^
und$
für Anfang und Ende der Zeichenfolge schien es nichts zu stimmenPlump mich:
Und wenn du es so benutzen willst, wie ich es oft tue:
Ich empfehle, dieses kleine Skript in ~ / bin / umzubenennen:
quelle
Sie können versuchen, MacPorts zu installieren und das
renameutils
Paket zu installieren :quelle
qmv
sieht aus wie es den Job macht.qmv
ist ein großartiges Tool, obwohl es für einfache Umbenennungen von Regex ein bisschen zu viel Arbeit ist, ist es fantastisch, um eine große Anzahl beliebiger Dateien intelligent zu benennen und zu verschiebenEs gibt verschiedene Umbenennungsversionen . Sie suchen anscheinend nach dem Perl-basierten.
Eine Version dieses Dienstprogramms wird mit dem Modul File :: Rename Perl geliefert. Du kannst es mit so etwas wie installieren
sudo cpan -i File::Rename
.Oder Sie könnten mit dem Umbenennen von Debians Perl- Paket gehen . Es ist nur eine einzige Datei zum Herunterladen. Platziere es wo immer du willst und ändere es so, dass es ausführbar ist.
Eine Alternative ist das zmv- Tool, das mit zsh geliefert wird . Es hat nicht die gleiche Syntax, wird jedoch mit Ihrem Betriebssystem geliefert und kann viele der häufigsten Fälle problemlos lösen.
quelle
Auf Macs verwende ich Aristoteles Pagaltzis 'frei erhältliches Programm
rename
, das wie Debians Perl-basiert ist. Sie können es hier bekommen . Oder besuchen Sie hier , um es zuerst zu lesen - immer eine gute Idee.Sie müssen das irgendwo in Ihr einfügen
$PATH
und es ausführbar machen (chmod +x rename
) und dann können Sie loslegen.quelle
Das sollte nicht schwierig sein, ist es aber anscheinend. Beispiel: Ich möchte die gesamte Dateierweiterung von AIFF in AIFC umbenennen.
quelle
Wenn Sie nach einer grafischen Benutzeroberfläche suchen, versuchen Sie es mit Name Mangler . Es hat eine "Vorschau" -Funktion, die zeigt, was passiert, wenn Sie mit dem Umbenennen weitermachen.
quelle
Der entsprechende Befehl in Renamer (plattformübergreifend) lautet
quelle
Wenn Ihnen die Mehrfachauswahl von Sublime Text gefällt, können Sie sie mit qmv verwenden:
quelle
Ich ging einfach weiter und fand meinen Favoriten, den ich als Perl-Umbenennung bezeichnet habe, indem ich den
rename
Befehl gab, bei dem die Hilfe so aussieht:Usage: rename [-v] [-n] [-f] perlexpr [filenames]
So weiß ich, dass ich den habe, den ich mag.
Für Mac gibt es sogar in Homebrew andere, bei denen ich mich nur vage an Probleme erinnere. Es ist also nicht das
rename
Paket und es ist auch nicht das Nongnu-renameutils
Paket.Habe es von hier und habe gerade die Installation gemacht, wie sie es erwähnen: https://github.com/subogero/rename
quelle