Renomeia um conjunto particular de arquivos (Linux)

1

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

Gostaria de retirar a parte boxScore de cada arquivo, por exemplo, boxScoreBaseball.html.php se tornaria baseball.html.php . Qual a maneira mais fácil de fazer isso?

    
por Jason Swett 25.05.2012 / 18:23

4 respostas

3

Provavelmente só funciona com o Bash:

for i in boxScore*; do mv $i ${i#boxScore}; done

Eu sempre uso esta referência para coisas rápidas e sujas: link (ver seção 4).

    
por 25.05.2012 / 18:28
1

Outra opção é usar mmv (Veja este artigo para mais exemplos ).

Para o exemplo dado:

mmv "boxScore*.html.php" "#1.html.php"
    
por 25.05.2012 / 20:58
1

Você não pode renomear tudo diretamente, você deve usar um script bash. Talvez esses links sejam úteis para você:

por 25.05.2012 / 18:31
0

Execute este pequeno script de shell:

for file in *; do echo "${file:8}" | sed -e 's/^\([A-Z]\)\(.*\)/\l/' | xargs mv "$file"; done

Nós iteramos todos os arquivos no diretório atual. Primeiro, fazemos eco do nome do arquivo sem os primeiros 8 caracteres. Em seguida, usamos sed para converter o primeiro caractere em minúsculo. A expressão sed search 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 minúscula 1 e depois acrescentar o grupo 2". A última parte apenas move o arquivo antigo para o nome do arquivo transformado.

    
por 25.05.2012 / 18:32

Tags