Versuch, Dateien basierend auf Textdateien umzubenennen

Versuch, Dateien basierend auf Textdateien umzubenennen

Ich versuche, ein Verzeichnis voller Dateien basierend auf dem Inhalt zweier Textdateien umzubenennen. OLD(die die vollständigen Namen der aktuellen Dateien enthält) und NEW(die die Namen enthält, in die ich sie umbenennen möchte), beide in der gleichen Reihenfolge.

Wie gehe ich vor, um die Dateien von OLDin umzubenennen NEW?

Jede Datei enthält \ngetrennte Namen

ALTE Beispielzeile:Blah Blah Blah Campaign 2 Episode 1.mp4

NEUE Beispielzeile:Campaign 2 Episode 1.mp4

Antwort1

Eine sehr zsh-spezifische:

old=(${(f)"$(<OLD)"}) new=(${(f)"$(<NEW)"})
for o n (${old:^new}) echo mv -i -- $o $n

Entfernen echo, wenn Sie zufrieden sind.

Oder ein tragbares:

while IFS= read -r old <&3 && IFS= read -r new <&4; do
  echo mv -i -- "$old" "$new"
done 3< OLD 4< NEW

verwandte Informationen