So benennen Sie Dateien in einem Verzeichnis wie der folgenden um: PMC21375.pdf.txt
Ich muss umbenannt werden in 21375.txt
. dh ich muss beide PMC
und pdf
von jedem Dateinamen entfernen .
10
rename 's/(PMC|\.pdf)//g' *pdf.txt
Demo:
$ ls *txt
PMC21375.pdf.txt
$ rename -n 's/(PMC|\.pdf)//g' *txt
PMC21375.pdf.txt -> 21375.txt
von der shell
Eingabeaufforderung. Es ist sehr nützlich, Sie können einen Perl- Code wie ich in eine Substitution einfügen.
Sie können den -n
Schalter (Trockenlaufmodus) entfernen, wenn Ihre Tests gültig werden.
Es gibt andere Tools mit demselben Namen, die dies möglicherweise können oder nicht. Seien Sie also vorsichtig.
Wenn Sie den folgenden Befehl ausführen ( linux
)
$ file $(readlink -f $(type -p rename))
und du hast ein Ergebnis wie
.../rename: Perl script, ASCII text executable
dann scheint dies das richtige Werkzeug zu sein =)
Wenn nicht, um es zum Standard (normalerweise bereits der Fall) zu machen Debian
und abzuleiten wie Ubuntu
:
$ sudo update-alternatives --set rename /path/to/rename
(Ersetzen Sie /path/to/rename
den Pfad Ihres perl's rename
Befehls.
Last but not least wurde dieses Tool ursprünglich von Larry Wall, dem Vater des Perl, geschrieben.
.pdf
aus dem Dateinamen entfernt.Neben dem Umbenennungsbefehl können Sie dies direkt in bash tun (nur eine von vielen Möglichkeiten):
Bearbeitet, um Pinyaka zu zeigen, wie es funktioniert:
quelle
.pdf
aus dem Dateinamen entfernt.Es gibt verschiedene Dienstprogramme zum Umbenennen von Dateien, aber eines der am einfachsten zu verwendenden ist
rename
. In Ihrem Fall können Sie wahrscheinlich Folgendes tun:Der erste Parameter ist der Teil des Dateinamens, der ersetzt werden soll. Der zweite Parameter ist die Ersatzzeichenfolge. Hier verwende ich
''
, um die leere Zeichenfolge darzustellen. Alle folgenden Parameter sind Dateien, die umbenannt werden müssen. Hier habe ich*txt
das Ersetzen auf Textdateien beschränkt.rename
sollte bereits vorhanden sein, wenn Sie Linux ausführen. Wenn Sie ein * BSD oder OS X ausführen, müssen Sie es möglicherweise zuerst installieren.quelle
rename
. Es gibt eine vonutil-linux
und eine vonperl
mit unterschiedlicher Syntax. Dasjenige, auf das Sie sich beziehen, sieht aus wie das vonutil-linux
, das manchmal aufgerufen wirdrename.ul
, um nicht mit demrename
von verwechselt zu werdenperl
, während auf einigen anderen Systemenrename
das von util-linux und das von vonperl
aufgerufen wirdprename
.rename 's/PMC// *.txt
undrename s/\.pdf// *.txt
Erstellen Sie zuerst eine Sicherungskopie Ihrer Dateien! Dann können Sie im Grunde genommen einen Python-Einzeiler im aktuellen Verzeichnis mit der allgemeinen Form verwenden:
In Ihrem speziellen Fall können Sie dies zweimal verwenden:
zu entfernen
.pdf
und noch einmal:zu entfernen
PMC
.quelle
Versuche dies:
for i in *.pdf.txt; do j=${i//\.pdf/}; j=${j//PMC/}; mv $i $j; done
Die
j=${i//\.pdf/}
Mittel zu ersetzen ,.pdf
in$i
nichts. Ebenso mit der zweiten j-Aufgabe, die PMC loszuwerden.quelle
Wenn Sie verwenden
zsh
, ist dies ein typischer Job fürzmv
:(
zmv
Behandelt potenzielle Konflikte ordnungsgemäß).quelle