Tengo los siguientes archivos:
boxScoreBaseball.html.php
boxScoreBasketball.html.php
boxScoreBowling.html.php
boxScoreCheer.html.php
boxScoreCrew.html.php
boxScoreCrossCountry.html.php
boxScoreEquestrian.html.php
boxScoreFieldHockey.html.php
boxScoreFootball.html.php
boxScoreGolf.html.php
boxScoreGymnastics.html.php
boxScoreHockey.html.php
boxScoreLacrosse.html.php
boxScoreRugby.html.php
boxScoreSkiing.html.php
boxScoreSoccer.html.php
boxScoreSoftball.html.php
boxScoreSwimming.html.php
boxScoreTennis.html.php
boxScoreTrack.html.php
boxScoreVolleyball.html.php
boxScoreWaterPolo.html.php
boxScoreWrestling.html.php
Me gustaría quitar una boxScore
parte de cada archivo, de modo que, por ejemplo, boxScoreBaseball.html.php
se convierta en baseball.html.php
. ¿Cuál es la forma más sencilla de hacer esto?
Respuesta1
Probablemente sólo funcione con Bash:
for i in boxScore*; do mv $i ${i#boxScore}; done
Siempre uso esta referencia para cosas de bash rápidas y sucias:http://aurelio.net/shell/canivete/es/(ver sección 4).
Respuesta2
Otra opción es utilizar mmv
(Vereste artículo para más ejemplos).
Para el ejemplo dado:
mmv "boxScore*.html.php" "#1.html.php"
Respuesta3
No puede cambiar el nombre de todos directamente, debe usar un script bash. Quizás estos enlaces te sean útiles:
Respuesta4
Ejecute este pequeño script de shell:
for file in *; do echo "${file:8}" | sed -e 's/^\([A-Z]\)\(.*\)/\l\1\2/' | xargs mv "$file"; done
Recorremos cada archivo en el directorio actual. Primero, hacemos eco del nombre del archivo sin los primeros 8 caracteres. Luego usamos sed
para convertir el primer carácter a minúscula. La sed
expresión de búsqueda significa "principio de línea, grupo 1: una letra mayúscula, grupo 2: el resto", y la expresión de reemplazo significa "grupo 1 coincidente con minúsculas y luego agregue el grupo 2". La última parte simplemente mueve el archivo antiguo al nombre del archivo transformado.