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$orige 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