2016-01-14 56 views
0

整數號碼查找文件中的兩個連續數本之間的N個最大差被存儲在文件中,我需要找到在文件中的兩個連續數本之間Max和N MAX差(在每個行/行一個整數) 例如使用unix

12 
15 
50 
80 

最大差異:35(50 -15)和說N = 2,從而第一最大值35和第二最大值:30

+1

這很好。祝你好運。你有編程問題嗎?這個網站是爲編程問題,而不是一個地方轉儲你的功課,並期望別人爲你做。 –

+0

難度不是邏輯,但中號不是非常清楚的UNIX命令,可以在這種情況下 –

+0

米閱讀文件N迭代逐行有用的..我想如果可以用awk做..但它需要記住早期沒有 –

回答

1
#!/usr/bin/awk -f 
NR>1{ diff = $0 - prev 
     for (i = 0; i < N; ++i) 
     if (diff > maxdiff[i]) 
     { # sort new max. diff. 
      for (j = N; --j > i;) if (j-1 in maxdiff) maxdiff[j] = maxdiff[j-1] 
      maxdiff[j] = diff 
      break 
     } 
    } 
    { prev = $0 } 
END { for (i in maxdiff) print maxdiff[i] } 

- 即,例如,如果該腳本名爲nmaxdiff.awk和數字存儲在文件中numbers,進入

nmaxdiff.awk N=2 numbers