Estou tentando classificar dentro de uma linha de entrada em um número desconhecido de campos:
Entrada:
ab bc
bc ab
cd ef bc
bc cd ef
cd bc ab
ef ab bc cd gh
Resultado:
ab bc
ab bc
bc cd ef
bc cd ef
ab cb cd
ab bc cd ef gh
Eu tenho usado algo como, awk '{if($2 < $1) print $2,$1;else print}'
mas parece que ficaria bagunçado em mais de dois campos. Qualquer ajuda?
text-processing
awk
sort
Chris
fonte
fonte
-l
, você não precisa imprimir uma nova linha.print join " ", sort @F
será suficiente.Uma maneira de usar o GNU awk:
Resultado:
fonte
Aqui está outra
perl
solução, semelhante à resposta do @ Birei, mas mais concisa:fonte
No shell script:
(Isso bifurca muito, prefere a solução perl ou gnu awk)
fonte