Substituição de strings em nomes de arquivos no linux

1

Eu tenho uma tonelada de arquivos chamados File30_i.txt para i=1, 2, 3, 4, 5 ... Existe uma maneira fácil de renomear rapidamente o File20_i.txt , por exemplo?

    
por JMzance 13.10.2013 / 23:49

3 respostas

3

Existe uma ferramenta para isso chamada rename :

rename 's/File30/File20/' *.txt

Para uma pré-visualização com -n :

rename -n 's/File30/File20/' *.txt
    
por 14.10.2013 / 00:58
0

Minha maneira preferida seria usar o sed para gerar um script para ele, por exemplo:

ls -1|sed 's/File30_\([^.]*\).txt/mv & File20_.txt/'|bash

Isso deve renomear de acordo com os nomes de arquivos que você forneceu na pergunta. Para visualizar os comandos, você pode fazer:

ls -1|sed 's/File30_\([^.]*\).txt/mv & File20_.txt/'
    
por 14.10.2013 / 00:00
0

renamer funciona em Windows, Mac e Linux:

$ renamer --find Find30 --replace Find20 *.txt
    
por 14.10.2013 / 15:11