Entfernen Sie führende Zeichen im Dateinamen bis zu einem bestimmten Muster

Entfernen Sie führende Zeichen im Dateinamen bis zu einem bestimmten Muster

Angenommen, ich habe Dateien mit dem Namen: 93162-117352 - May 24, 2017 345 PM_16_163_student.csv

Ich möchte es wie folgt umbenennen: 16_163_student.csv

Wie mache ich das mit dem Umbenennen?

Antwort1

Sie möchten alles im Dateinamen bis einschließlich dem ersten entfernen _. Dies ist ähnlich, aber einfacher als das, was in "Ändern Sie die Namen von Dateien konsequent"

Meine Lösung wäre (unter der Annahme einer POSIX-Shell wie bash):

for name in *.csv; do
    mv -i -- "$name" "${name#*_}"
done

Dadurch ${name#*_}wird alles bis einschließlich dem ersten _im Namen entfernt.

Dies setzt voraus, dass alle Dateien, an denen Sie arbeiten möchten, dem Muster entsprechen *.csv.

Ich habe ein hinzugefügt, -idamit Sie eine Option zum Abbrechen erhalten, wenn dadurch Dateien verloren gehen würden (z. B. weil sowohl ein A_x.csvals auch vorhanden sind B_x.csv).

verwandte Informationen