como posso renomear vários arquivos inserindo um caractere?

3

Eu tenho muitos arquivos no formato

sw001
sw002
sw003
...

Eu quero inserir um período entre os sw e os valores numéricos. Como posso conseguir isso?

    
por Paul 02.03.2012 / 19:06

3 respostas

4

No Linux:

rename 'sw' 'sw.' sw*

No Debian, Ubuntu e derivados, use rename.ul em vez de rename ( rename é um comando de renomeação de arquivo diferente nessas distribuições).

    
por 02.03.2012 / 19:12
7

Se você não tem rename e não tem vontade de baixá-lo, use este:

for file in sw*; do
    mv "$file" "${file/sw/sw.}"
done
    
por 02.03.2012 / 19:37
1

Se você puder expressar a transformação como uma expressão regular Perl, renomear o que vem com Perl é uma ótima escolha. Aplica uma expressão Perl a cada nome de arquivo e, em seguida, altera o nome se for diferente. Muitas vezes, uma substituição de expressão regular Perl é o que você quer:

rename 's/sw/sw./' sw*

Isso é diferente do renomear (1) que vem com o util-linux-ng, mas normalmente o Versão Perl é o padrão. Veja man 1 rename para verificar qual deles seu sistema possui.

    
por 02.03.2012 / 19:07

Tags