Como posso remover um prefixo numérico de vários nomes de arquivos?

2

Eu tenho arquivos do > 2000 que são nomeados como

123-FILENAME_TEXT_M101K_20150929.CSV

onde 123 pode ser qualquer número de três ou quatro dígitos. Os arquivos estão todos no mesmo diretório. Eu gostaria de um script que remova o número de prefixo e o traço. (isto é, o 123- inicial deve ser removido do nome do exemplo)

Eu tentei mv **-FILENAME* FILENAME* . rename não é uma função disponível

    
por Kim 31.01.2018 / 15:22

2 respostas

4

Você poderia tentar algo assim, remover tudo antes do primeiro -

for file in *-*.CSV
do
   newName="${file#*-}"
   mv -- "${file}" "${newName}"
done
    
por 31.01.2018 / 15:32
1

Eu tentei usar a combinação de sed, awk e find. Testado e funcionando bem

find . -type f -iname "*.CSV"| sed "s/^\.\///g"| sed -n '/^[0-9]\{4\}/p' | awk   -F "-" '{print "mv" " " $0 " " $2}'| sh
    
por 31.01.2018 / 20:18

Tags