Com awk , você faria:
awk '{file = "output" substr($0, 1, 1) ".txt"; print > file}' < input.txt
Observe que as linhas de 10.123 entrarão em output1.txt da mesma forma que as linhas de 1.123 ou 11.123 , 123123.123 ...
Como alternativa, você pode fazer:
awk -F'[.;]' '{file = "output" $1 ".txt"; print > file}' < input.txt
Para que os arquivos sejam nomeados com base no conteúdo da linha até o primeiro . ou ; (linhas começando com 10.123;... ou 10;... entrando em output10.txt ).