Вы можете использовать ${i%%.*}
. Он удалит все после первого появления точки, включая точку.
напр.
i=absdfsfd.b.c.dddd
echo "${i%%.*}"
выдаст вывод
absdfsfd
В вашем случае:
for i in *;do echo "${i%%.*}";done
Не используйте for i in ls
. См. Почему *не *parse `ls`(и что делать вместо )?