Eu tenho os seguintes arquivos:
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
Eu gostaria de retirar a boxScore
parte de cada arquivo, então, por exemplo, boxScoreBaseball.html.php
ficaria baseball.html.php
. Qual a maneira mais fácil de fazer isso?
Responder1
Provavelmente só funciona com Bash:
for i in boxScore*; do mv $i ${i#boxScore}; done
Eu sempre uso esta referência para coisas rápidas e sujas:http://aurelio.net/shell/canivete/en/(ver seção 4).
Responder2
Outra opção é usar mmv
(vereste artigo para mais exemplos).
Para o exemplo dado:
mmv "boxScore*.html.php" "#1.html.php"
Responder3
Você não pode renomear tudo diretamente, você deve usar um script bash. Talvez estes links sejam úteis para você:
Responder4
Execute este pequeno script de shell:
for file in *; do echo "${file:8}" | sed -e 's/^\([A-Z]\)\(.*\)/\l\1\2/' | xargs mv "$file"; done
Iteramos cada arquivo no diretório atual. Primeiro, repetimos o nome do arquivo sem os primeiros 8 caracteres. Em seguida, usamos sed
para converter o primeiro caractere para minúsculo. A sed
expressão de pesquisa significa "início da linha, grupo 1: uma letra maiúscula, grupo 2: o resto", e a expressão de substituição significa "grupo de correspondência 1 em minúsculas e, em seguida, anexar o grupo 2". A última parte apenas move o arquivo antigo para o nome do arquivo transformado.