Я пытаюсь отсортировать в строке ввода по неизвестному количеству полей:
Входные данные:
ab bc
bc ab
cd ef bc
bc cd ef
cd bc ab
ef ab bc cd gh
Вывод:
ab bc
ab bc
bc cd ef
bc cd ef
ab cb cd
ab bc cd ef gh
Я использовал что-то вроде, awk '{if($2 < $1) print $2,$1;else print}'
но кажется, что это будет грязно из-за более чем двух полей. Любая помощь?
text-processing
awk
sort
Крис
источник
источник
-l
, вам не нужно печатать новую строку.print join " ", sort @F
будет достаточно.Один из способов использования GNU awk:
Вывод:
источник
Вот еще одно
perl
решение, похожее на ответ @ Birei, но более сжатое:источник
В сценарии оболочки:
(Это слишком много, предпочтительнее решение perl или gnu awk)
источник