GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Umbenennen von Dateien unter Linux mit einer Regex

Lösung 1:

Früher habe ich dafür Perl-Skripte geschrieben, bis ich den Umbenennungsbefehl entdeckte.

Es akzeptiert eine Perl-Regex für die Umbenennung:

Dafür habe ich einfach zwei Befehle eingegeben:

rename 's/(\w+)-(\w+)-(\d\d)-(\d{4})-NODATA.txt\$1.$4$3$2.log$//' *
rename 'y/A-Z/a-z/' *.log

Für einige Distributionen jedoch rename hat diese Funktionalität nicht (siehe Manpage), und Sie müssen möglicherweise perl-rename installieren oder prename .

Lösung 2:

mmv ist ein Standard-Linux-Dienstprogramm zum Verschieben/Umbenennen mehrerer Dateien. Es ist in den Repos für die meisten Distributionen verfügbar. Für Ihr obiges Beispiel könnten Sie Folgendes tun:

mmv '*-Log-*-*-*-NODATA.txt' '#l1.#4#3#2.log'

Weitere Informationen finden Sie in diesem Debaday-Artikel oder auf der Manpage.

Lösung 3:

Da ich keinen Umbenennungsbefehl habe, verlasse ich mich auf diesen:

for myfile in /my/folder/*; do
    target=$(echo $myfile|sed -e 's/foo/bar/g')
    mv "$myfile" "$target"
done

Lösung 4:

rename util ist nicht sehr "Standard". Jede Distribution wird mit einem anderen rename ausgeliefert Werkzeug. Zum Beispiel hier auf Gentoo, rename ist von sys-apps/util-linux Paket und unterstützt keine Regex.

Hamish Downer vorgeschlagen mmv , es scheint nützlich zu sein, besonders für die Verwendung in Skripten.

Andererseits möchten Sie für den allgemeinen Fall möglicherweise renameutils. Es hat qmv und qcp Befehle, die einen Texteditor Ihrer Wahl öffnen (meine Präferenz:Vim) und Ihnen erlauben, die Zieldateinamen dort zu bearbeiten. Nach dem Speichern und Schließen des Editors qmv /qcp übernimmt die gesamte Umbenennung.

Beide mmv und qmv sind intelligent genug, um Dateien in der richtigen Reihenfolge umzubenennen und auch zirkuläre Umbenennungen zu erkennen, und erstellen bei Bedarf automatisch eine temporäre Datei.


Linux
  1. So verschlüsseln Sie Dateien mit gocryptfs unter Linux

  2. Umbenennen von Dateien mit Erweiterungen in Kleinbuchstaben mit „Umbenennen“?

  3. Arbeiten Sie mit ZIP-Dateien unter Linux

  4. Linux Dateien in Großbuchstaben umbenennen

  5. Wie benenne ich Dateien mit Leerzeichen mit der Linux-Shell um?

Linux zforce Command Tutorial mit Beispielen

So benennen Sie Dateien über die Befehlszeile in Linux um

So benennen Sie eine Datei (en) in Linux um

Linux-Erweiterung zum Umbenennen mehrerer Dateien

lsof-Befehl unter Linux mit Beispielen

Linux-Comm-Befehl mit Beispielen