Ich habe eine Sammlung von Dateien, die einem Muster entsprechen, wie z. B. 'Zuordnung02.cc', 'Zuordnung02.h', 'Zuweisung02.txt' usw. Ich möchte diese Dateien in 'Zuordnung03.cc', 'Zuweisung03 "kopieren / umbenennen. h ',' assign03.txt 'und so weiter.
Ich vermute, dass dies mit einem Shell-Skript und sed einfach sein sollte. Bisher habe ich:
OLD_NO=$1
NEW_NO=$2
echo "Moving from $OLD_NO to $NEW_NO"
for name in assignment$OLD_NO.* ; do
newname=$(echo $name | sed 's/\(.*\)$OLD_NO\(.*\)/\1xx$NEW_NO\2/')
echo "$name -> $newname"
# mv -v $name $newname
done
Leider gibt die Art und Weise, wie ich sed aufrufe, immer die Eingabezeichenfolge zurück $name
und führt das Regex-Suchen / Ersetzen nicht durch.
Hinweis: Im Internet gibt es einen rename
Befehl mit dieser Funktionalität, der jedoch auf meinem MacBook nicht verfügbar ist.
newname=$(echo $name | tr $OLD_NO $NEW_NO)
$OLD_NO
und$NEW_NO
wird nicht erweitert erhalten.