2013-06-06 6 views
0

awk에서 숫자 배열을 정렬하려면 어떻게해야합니까? "sortNum.awk을"고려 : echo "4 3 2 1" | awk -f sortNum.awk으로 실행awk에서 숫자 배열 정렬

{ 
    split($0,a," ") 
    for (i in a) print a[i] 
    print "####" 
    asort(a) 
    for (i in a) print a[i] 
} 

내가 GNU awk는 버전 3.1.8을 사용하고

1 
4 
3 
2 
#### 
4 
1 
2 
3 

을 제공합니다.

+1

'awk'에 대해 특별히 신경 쓰지 않으려면 Perl 한 줄자입니다 :'echo "4 3 2 1"| perl -e "print join '', sort split '\ s', <>"' – mvp

답변

4

숫자 순서로 인덱스를 선택하지 않으면이를 명시 적으로 수행해야합니다.

{ 
    n = split($0,a," "); 
    for (i = 1; i <= n; i++) print a[i]; 
    print "####" 
    asort(a) 
    for (i = 1; i <= n; i++) print a[i]; 
} 
+0

대단히 고마워요! 이것은 작동하는 것 :) –