
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 OLD
in umzubenennen NEW
?
Jede Datei enthält \n
getrennte 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