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}'했지만 두 개 이상의 필드에서 지저분해질 것 같습니다. 어떤 도움? text-processing awk sort — 크리스 소스
8 한 가지 방법으로 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충분할 것입니다. — glenn jackman
6 GNU awk를 사용하는 한 가지 방법 : 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 — ong 름 소스
1 쉘 스크립트에서 : while read n do echo $(echo $n | tr " " "\n" | sort ) done < infile (포크가 너무 많으면 perl 또는 gnu awk 솔루션을 선호하십시오) — 엠마누엘 소스
-l하고 있으므로 개행을 인쇄 할 필요가 없습니다.print join " ", sort @F충분할 것입니다.