Isso deve funcionar para você:
sed 's/"//g' files.csv | while IFS=, read orig new; do mv "$orig" "$new"; done
Explicação:
-
sed 's/"//g' files.csv
: remova as citações -
IFS=,
: divide a entrada em,
-
while read orig new; do ... done
: Isso lerá cada linha de entrada, dividirá o valor de$IFS
(aqui uma vírgula) e salvará o primeiro campo como$orig
e o restante como$new
. -
mv "$orig" "$new"
: isso renomeará os arquivos conforme solicitado.
Se o arquivo contiver apenas nomes de arquivos (como orig.jpg
) e nenhum caminho (não /home/take2/orig.jpg
ou similar), o comando acima afetará somente os arquivos no diretório atual. Então, você precisa abrir um terminal, cd
para o diretório de destino e executá-lo lá.
Teste primeiro:
Para testar isso, você pode fazer uma execução seca primeiro imprimindo os comandos que serão executados sem executá-los:
sed 's/"//g' files.csv | while IFS=, read orig new; do echo mv "$orig" "$new"; done