Com POSIX awk
:
awk '$1 in a {print a[$1], $0; next}; {a[++l] = $0}' <file
Observe que a saída não está classificada e será perdida se a linha int aparecer antes da linha indicada.
Com gawk
ou bwk-awk
, você imprime a saída classificada facilmente:
gawk '
$1 in a { a[$1] = a[$1] " " $0; next }
{ a[++l] = $0 }
END { for (i = 1; i <= length(a); i++) print a[i] }
' <file
Com outras implementações awk
, você precisa escrever sua própria função para classificar o índice da matriz.
Isso também mantém todo o conteúdo do arquivo na memória.