Не смешивайте сценарий оболочки, порождающий 3 отдельные подоболочки для awk
на итерацию , когда подойдет один вызов awk
. Это будет на порядки быстрее для больших входных файлов.
Вы можете сгруппировать сообщения по своему усмотрению, просто сохранив первую строку в переменной, перейдя к следующей записи, а затем распечатав строку в переменной и текущая запись до конца файла. Например, с вашими строками в файле с именем lines
вы можете сделать:
awk 'FNR==1 {line=$0; next} {print line"\n"$0"\n"; line=$0}' lines
Пример использования / вывода
$ awk 'FNR==1 {line=$0; next} {print line"\n"$0"\n"; line=$0}' lines
12 abc
32 cdg
32 cdg
9 dfk
9 dfk
98 nhf
98 nhf
43 uyr
43 uyr
5 ytp
(дополнительная строка -break был просто включен, чтобы показать разделение, формат вывода можно изменить по желанию)
Вы можете добавить счетчик, если хотите, и вывести счет с помощью правила END
.