Substitua os arquivos por outros de outra pasta correspondida pelo primeiro token no nome do arquivo

2

Digamos que eu tenha duas pastas:

ls /A/
    01 - IncorrectName.flac
    02 - otherincorrect.flac

ls /B/
    01 - CorectName.flac
    02 - Othercorrect.flac

Como eu moveria os arquivos da pasta A para B, mas usando os nomes de arquivos da pasta B?

Posso fazer isso automaticamente com $ mv /A/01 - IncorrectName.flac /B/01 - CorrectName.flac ?

Os primeiros 5 caracteres de todos os nomes de arquivos são sempre "NN -"

    
por Alasdair 03.12.2011 / 00:49

1 resposta

4

Não tenho certeza se entendi o que você quer, mas isso pode ser no bash:

#! /bin/bash
for file in "$1"/[0-9][0-9]*.flac ; do
    newname="$2"${file#"$1"}
    newname=${newname:0:5+${#2}}
    mv "$file" "$newname"*
done

Atualização : deve funcionar com argumentos de linha de comando. O truque era que o comprimento da corda não era mais constante, portanto ${#2} .

    
por 03.12.2011 / 01:10