J'essaie de trier dans une ligne d'entrée sur un nombre inconnu de champs:
Contribution:
ab bc
bc ab
cd ef bc
bc cd ef
cd bc ab
ef ab bc cd gh
Production:
ab bc
ab bc
bc cd ef
bc cd ef
ab cb cd
ab bc cd ef gh
J'ai utilisé quelque chose comme, awk '{if($2 < $1) print $2,$1;else print}'
mais il semble que cela deviendrait compliqué sur plus de deux champs. De l'aide?
text-processing
awk
sort
Chris
la source
la source
-l
, vous n'avez pas besoin d'imprimer une nouvelle ligne.print join " ", sort @F
suffira.Une façon d'utiliser GNU awk:
Production:
la source
Voici une autre
perl
solution, similaire à la réponse de @ Birei mais plus concise:la source
Dans le script shell:
(Cela fourche trop, préférez la solution awl perl ou gnu)
la source