Tengo una colección de archivos que coinciden con un patrón, como 'ejercicio02.cc', 'ejercicio02.h', 'ejercicio02.txt', etc. Me gustaría copiar / renombrar estos archivos en 'trabajo03.cc', 'trabajo03. h ',' task03.txt ', y así sucesivamente.
Sospecho que esto debería ser sencillo usando un script de shell y sed. Hasta ahora tengo:
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
Desafortunadamente, la forma en que estoy invocando sed siempre devuelve la cadena de entrada $name
y en realidad no hace que la expresión regular busque / reemplace.
Nota: en Internet hay un rename
comando que tiene esta funcionalidad, pero que no está disponible en mi MacBook.
newname=$(echo $name | tr $OLD_NO $NEW_NO)
$OLD_NO
y$NEW_NO
no se amplió.