Ersetzen Sie bestimmte Zeichenfolgen in Dateinamen

Ersetzen Sie bestimmte Zeichenfolgen in Dateinamen

Ein Freund von mir hat auf diese Weise unzählige Dateien unter Windows gruppiert

Bildbeschreibung hier eingeben

Nachdem ich ihn dazu gebracht habe, auf Ubuntu umzusteigen, werden die Dateien nicht mehr nach der Anzahl der Ausrufezeichen am Anfang sortiert. Daher wüsste ich gerne, wie ich sie nach dieser Regel umstellen kann:

  • 1für !und!!

  • 0für !!!und!!!!

Ich schätze, ich sollte awk verwenden, aber ich bin kein Experte, deshalb bin ich hier …

Antwort1

Für die Batch-Umbenennung von Dateien und Verzeichnissen mit GUI können Sie verwendenGPRename.

GPRename

Sie können es installieren mit:

sudo apt-get install gprename

Antwort2

In einem Python-Skript:

#!/usr/bin/env python3
import os
import shutil
import sys

dr = sys.argv[1]
replace = ["!", "!!", "!!!", "!!!!"]

for f in os.listdir(dr):
    test = [f.startswith(s) for s in replace]
    if test.count(True) > 2:
        shutil.move(dr+"/"+f, dr+"/"+"0"+f.replace("!", ""))
    elif 0 < test.count(True) < 3:
        shutil.move(dr+"/"+f, dr+"/"+"1"+f.replace("!", ""))

Es ersetzt führende !!!!„und“ !!!durch 0, und !!„und“ !durch 1, vorausgesetzt, !es steht nur am Anfang des Namens.

Um es zu benutzen

  1. Fügen Sie das Skript in eine leere Datei ein und speichern Sie es unterrename.py
  2. Führen Sie es aus einem Terminalfenster mit dem folgenden Befehl aus:

    python3 /path/to/rename.py '<directory>'
    

    wobei <directory>sich das Verzeichnis mit den umzubenennenden Dateien befindet.

Antwort3

Sie können auch den perl-basierten renameBefehl verwenden, zB

rename -vn -- 's/^!{1,2}(?!!)/0/' *

um ein oder zwei Zeichen abzugleichen, denen am Anfang ( ) des Namens !kein a folgt , und!^SErsatz 0; und

rename -vn -- 's/^!{3,4}(?!!)/1/' *

für drei oder vier Zeichen, denen am Anfang ( ) des Namens !kein a folgt , und!^SErsatz 1.

HINWEIS: Mit dem -nSchalter können Sie einen „Trockenlauf“ durchführen, ohne die Namen tatsächlich zu ändern. Testen Sie zuerst die Ausdrücke und entfernen Sie sie, nwenn Sie fortfahren möchten.

verwandte Informationen