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
).