Um simples laço bash while é suficiente:
IFS=";"
while read othercolumn1 othercolumn2 ... id ... othercolumnx
do
mv $id DAN/
done < dan.csv
Que lê todas as linhas do arquivo CSV, divide a linha pelo conjunto de caracteres na variável IFS e armazena cada valor dessa linha nas variáveis correspondentes especificadas no cabeçalho do loop while.
Certifique-se de ajustar o cabeçalho do loop while (onde todas as colunas estão listadas) ao cabeçalho do seu arquivo CSV. Você provavelmente não precisa dos valores das outras colunas, mas é importante lê-las, caso contrário, todos os valores no CSV serão tratados como um valor id . Se o seu arquivo CSV for separado por algo diferente de ; , certifique-se de definir o caractere específico como IFS= -value antes do loop while .
Se o seu dan.csv tivesse quatro colunas onde o id é o terceiro, você faria assim:
IFS=";"
while read othercolumn1 othercolumn2 id othercolumn4
do
mv $id DAN/
done < dan.csv