Ho una raccolta di file che corrispondono a un modello come "assegnazione02.cc", "assegnazione02.h", "assegnazione02.txt", ecc. Vorrei copiare / rinominare questi file in "assegnazione03.cc", "assegnazione03. h ',' assegnment03.txt 'e così via.
Ho il sospetto che questo dovrebbe essere semplice usando uno script di shell e sed. Finora ho:
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
Sfortunatamente il modo in cui sto invocando sed restituisce sempre la stringa di input $name
e in realtà non trova / sostituisce regex.
Nota: guardando su Internet c'è un rename
comando che ha questa funzionalità, ma che non è disponibile sul mio MacBook.
newname=$(echo $name | tr $OLD_NO $NEW_NO)
$OLD_NO
e$NEW_NO
non si espanderà.