Como remover o prefixo de vários arquivos em um diretório [duplicado]

2

Eu tenho ~ 250 arquivos com o nome:

no_responseEvent_2002.02.07.03.15.56.970/       
no_responseEvent_2002.02.10.01.47.07.450/       
no_responseEvent_2002.02.13.14.18.46.00/

Eu quero remover 'no_response' de cada nome de arquivo.
Como faço isso?
Eu sei que um loop pode funcionar, mas estou confuso sobre como implementá-lo.

    
por geeb.24 23.10.2014 / 22:08

1 resposta

9

Eu assumo que todos os 250 arquivos estão no mesmo diretório e seguem o mesmo padrão de nomenclatura. Se for esse o caso, você poderia fazer,

for i in  "$remove"*;do mv "$i" "${i#"$remove"}";done

Teste

ls
no_responseEvent_2002.02.07.03.15.56.970   
no_responseEvent_2002.02.07.03.15.56.972
no_responseEvent_2002.02.07.03.15.56.971  
no_responseEvent_2002.02.07.03.15.56.973

Agora, depois de executar o loop for , obtenho a saída como

remove=no_response
for i in  "$remove"*;do mv "$i" "${i#"$remove"}";done
ls
Event_2002.02.07.03.15.56.970  
Event_2002.02.07.03.15.56.971  
Event_2002.02.07.03.15.56.972  
Event_2002.02.07.03.15.56.973

Referências

link

    
por 23.10.2014 / 22:17

Tags