10 不明な数のフィールドで入力行内をソートしようとしています: 入力: 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}'、3つ以上のフィールドで乱雑になるようです。何か助けは? text-processing awk sort — クリス ソース
8 使用する1つの方法perl: perl -lane 'printf qq[%s\n], join q[ ], sort @F' infile 出力: ab bc ab bc bc cd ef bc cd ef ab bc cd ab bc cd ef gh — 美麗 ソース 2 を使用-lしているので、改行を印刷する必要はありません。print join " ", sort @F十分であろう。 — グレン・ジャックマン2012
6 GNU awkを使用する1つの方法: awk '{ split($0, arr); asort(arr); for (i=1; i<=length(arr); i++) { printf "%s ", arr[i] }; printf RS } ' infile 出力: ab bc ab bc bc cd ef bc cd ef ab bc cd ab bc cd ef gh — 美麗 ソース
2 perl@Bireiの回答に似ていますが、より簡潔な別のソリューションを次に示します。 $ perl -anle 'print "@{[sort @F]}"' file ab bc ab bc bc cd ef bc cd ef ab bc cd ab bc cd ef gh — Cuonglm ソース
1 シェルスクリプトで: while read n do echo $(echo $n | tr " " "\n" | sort ) done < infile (フォークが多すぎるため、perlまたはgnu awkソリューションをお勧めします) — エマニュエル ソース
-l
しているので、改行を印刷する必要はありません。print join " ", sort @F
十分であろう。