Eu deveria pensar:
ls ./* | cut -d '.' -f 1,2,3 | sort -u
você chegará lá, isso essencialmente lista o conteúdo do diretório, em seguida, corta tudo após o terceiro '. e, em seguida, classifica as linhas e remove as duplicatas. O resultado final seria uma lista de 'abc.sh.ID'.
Se você quiser fazer um loop nesta nova lista e fazer um 'ls [line] *' para obter o datetimestamp.id.log também, o que resultaria no conteúdo do diretório agrupado por ID.