Версия на питоне, использующая массив словарей. Обратите внимание, что в этой версии порядок вывода не сохраняется.
#!/usr/bin/env python
import fileinput
dics = []
for line in fileinput.input():
(a, _) = line.split(':')
for dic in dics:
if a not in dic:
dic[a] = line
break
else:
dics.append({a: line})
for i, dic in enumerate(dics):
with open('file%d.txt' % (i+1), 'w') as f:
for line in dic.values():
f.write(line)