renomeia o nome do meio de vários arquivos usando o bash

0

Eu tenho vários arquivos localizados em /opt/rec/ , e quero renomear apenas parte dele usando o bash.

Nome do arquivo original:

WK6LZTPR99999999_dig_2017-07-10 01:55:57.xy

que eu quero mudar todos os arquivos com esse diretório como:

WK6LZTPR99999999_cur_2017-07-10 01:55:57.mp3
    
por Shen Ben 11.08.2017 / 08:12

2 respostas

4

Aqui está a bash solution.

for file in /path/to/*; do 
    nname="${file%%.*}.mp3"  # strip last part of file till first . seen
    echo mv "$file" "${nname//dig/cur}"  # replace 'dig' with 'cur'
done

Com mmv , é muito mais fácil.

mmv '*_*_*.*' '#1_cur_#3.mp3'

Ou com zmv :

zmv -w '*_*_*.*' '$1_cur_$3.mp3'
    
por 11.08.2017 / 08:28
2

Com o comando Perl renomear :

rename 's/_dig_([^.]+)\.xy$/_cur_$1.mp3/' /opt/rec/*.xy
    
por 11.08.2017 / 08:27

Tags