Use sed
sed 's/\([^ ]*\) *\(.*\)/ /' infile
Esse \([^ ]*\)
corresponderá a tudo até que um caractere não espacial seja visto.
Os parênteses \(...\)
são usados para fazer um grupo correspondente, cujo índice seria .
O \(.*\)
corresponde a tudo depois do primeiro grupo e está indexado em .
Os grupos *
in \(...\) *\(...\)
fora de correspondência serão ignorados para imprimir na saída, o que corresponde aos espaços entre os grupos 1 e 2, você pode usar \s*
(com GNU sed
) ou [[:space:]]*
(padrão) para coincidir com qualquer espaçamento caracteres em vez de apenas ASCII SPC também.
Então, no final, primeiro estamos imprimindo grupo2 do que grupo1 com um espaço entre eles.