Вы можете сделать это, используя awk
:
awk '{ x[$1]=x[$1] " " $2 " " $3 " " $4 " " $5 } END { for (k in x) print k,x[k]; }' input.txt
Этот фрагмент предполагает, что все ваши строки имеют ровно пять полей.
Кстати, стандартная утилита join
приближается кделать то, что вам нужно, но, к сожалению, предназначен для объединения двух разных файлов;объединение файла с самим собой приводит к появлению ложных строк.Тем не менее, вам, вероятно, стоит проверить это, потому что, если вы часто выполняете такую задачу, вы обязательно найдете ее полезной в какое-то время.