Parece que uma declaração case
seria apropriada aqui. Isso deve funcionar em bash ou outros shells parecidos com Bourne:
for f in *.csv; do
case "${f%.csv}" in
*.lefto) echo mv -- "$f" lefto/
;;
*.righto) echo mv -- "$f" righto/
;;
*.sagital) echo mv -- "$f" sagital/
;;
*) echo mv -- "$f" animals/
;;
esac
done
Teste:
touch foo.lefto.csv bar.righto.csv baz.csv foo.sagital.csv
então
mv -- bar.righto.csv righto/
mv -- baz.csv animals/
mv -- foo.lefto.csv lefto/
mv -- foo.sagital.csv sagital/
Remova o echo
s assim que estiver convencido de que está fazendo o que deseja