adicionando zero ao local específico dos nomes dos arquivos

4

Eu tenho um diretório composto por vários arquivos. Os nomes dos arquivos são os seguintes:

0102920.05o
0203920.05o
0304920.05o
....

Eu preciso adicionar "0" para todos os arquivos depois dos primeiros 4 números, como

01020920.05o
02030920.05o
03040920.05o

Existe uma maneira de fazer isso com bash ou perl?

    
por deepblue_86 24.03.2016 / 15:56

2 respostas

5

Use este comando

rename -n -v 's/(.{4})(.*)/0/' *

Veja se o resultado é o que você deseja, remova as opções -n e -v .

Explicação:

siga este comando simples:

rename 's/pattern/result/' filename(s)

O padrão pode ser regex. Então, podemos pegar uma parte diferente do texto (que é o nome do arquivo). Se você não entende, pesquise por regex.

Assim, no comando, sugiro, em padrão, dividir o nome do arquivo em duas partes: primeira parte, que é a primeira, quatro caracteres, e a segunda parte, o restante.

Agora, na parte do resultado, colamos a primeira parte, adicionamos um 0 e adicionamos a segunda parte. Simples assim.

Se você puder criar um regex adequado, poderá renomear granel facilmente.

    
por Mostafa Ahangarha 24.03.2016 / 16:07
3

algo assim pode fazer o truque no bash para todos os arquivos no diretório atual

for filename in *;do
    mv "$filename" "${filename:0:4}0${filename:5:11}"
done
    
por Philippe Gachoud 24.03.2016 / 16:02