Próbuję posortować w wierszu danych wejściowych nad nieznaną liczbą pól:
Wejście:
ab bc
bc ab
cd ef bc
bc cd ef
cd bc ab
ef ab bc cd gh
Wynik:
ab bc
ab bc
bc cd ef
bc cd ef
ab cb cd
ab bc cd ef gh
Używałem czegoś podobnego, awk '{if($2 < $1) print $2,$1;else print}'
ale wydaje się, że byłoby bałagan na więcej niż dwóch polach. Jakaś pomoc?
text-processing
awk
sort
Chris
źródło
źródło
-l
, nie musisz drukować nowego wiersza.print join " ", sort @F
wystarczy.Jednym ze sposobów korzystania z GNU awk:
Wynik:
źródło
Oto inne
perl
rozwiązanie, podobne do odpowiedzi @ Birei, ale bardziej zwięzłe:źródło
W skrypcie powłoki:
(To rozwidla za dużo, preferuj rozwiązanie perl lub gnu awk)
źródło