Remova os caracteres iniciais no nome do arquivo até um certo padrão [duplicado]

0

Suponha que eu tenha arquivos nomeados: 93162-117352 - May 24, 2017 345 PM_16_163_student.csv

Eu quero renomeá-lo para ser: 16_163_student.csv

Como faço isso com renomear?

    
por orrkid 26.05.2017 / 09:08

1 resposta

1

Você deseja remover tudo no nome do arquivo até e incluindo o primeiro _ . Isso é semelhante, mas mais fácil, ao que foi solicitado em " alterar nomes de arquivos de forma consistente "

Minha solução seria (assumindo um shell POSIX como bash ):

for name in *.csv; do
    mv -i -- "$name" "${name#*_}"
done

O ${name#*_} removerá tudo até e incluindo o primeiro _ no nome.

Isto supõe que os arquivos nos quais você deseja trabalhar correspondam ao padrão *.csv .

Eu adicionei um -i para que você tenha uma opção para abortar se isso fizer com que os arquivos sejam perdidos (por exemplo, porque há um A_x.csv e B_x.csv ).

    
por 26.05.2017 / 09:20