2013-07-12 1 views

답변

8

GNU의 AWK와 :

awk '{for(x=1;x<=NF;x++)a[++y]=$x}END{c=asort(a);print "min:",a[1];print "max:",a[c]}' 

출력 :

min: 9 
max: 99 

없이 AWK :

xargs -n1|sort -n|head or tail -1 

예 :

분 :

kent$ echo "20 90 60 30 
55 75 80 85 
10 15 99 95 
55 95 70 20 
9 35 85 75"|xargs -n1|sort -n|head -1 
9 

최대 : 당신은 물론 xargs -n1|sort -n 다음 파이프가 처음이자 마지막 선택하고 한 번에 인쇄 할 수 awk가 할 수

kent$ echo "20 90 60 30 
55 75 80 85 
10 15 99 95 
55 95 70 20 
9 35 85 75"|xargs -n1|sort -n|tail -1 
99 

.

4
awk ' 
NR == 1 { min=max=$1 } 
{ 
    for (i=1;i<=NF;i++) { 
     min = (min < $i ? min : $i) 
     max = (max > $i ? max : $i) 
    } 
} 
END { 
    printf "min value = %s\n", (min == "" ? "NaN" : min) 
    printf "max value = %s\n", (max == "" ? "NaN" : max) 
} 
' file 

"NaN의"결과 시험은 빈 입력 파일을 수용하는 것입니다 싶습니다.

4

당신이있는 경우 GNU awk :

# using array 
awk '{x[NR]=$1}END{asort(x);print "max="x[NR],"min="x[1]}' RS=' +|\n' file 
max=99 min=9 

# No array 
awk 'NR==1{m=n=$1}{$1>m?m=$1:m;$1<n?n=$1:n}END{print "max="m,"min="n}' RS=' +|\n' file 
max=99 min=9