ファイル内容
#cat file id appsSubmitted appsCompleted appsRunning appsFailed appsKilled ts 5 95255 94881 8 77289 2019-03-14 15:04:31 6 95263 94883 14 77289 2019-03-14 15:06:08 7 95318 94941 11 77 289 2019- 03-14 15:15:00 8 95318 94941 11 77 289 2019-03-14 15:15:01 9 95324 94947 11 77 289 2019-03-14 15:16:02 10 95326 94950 10 77289 2019-03- 14 15:17:01 11 95334 94955 13 77289 2019-03-14 15:18:01 12 95337 94961 10 77289 2019-03-14 15:19:01 13 95341 94966 9 77289 2019-03-14 15 :20:01 14 95341 94967 8 77289 2019-03-14 15 :21:02
1.最大IDを見つける
方法1(比較にプリセット値を使用)
[root @ hbhly_60_213〜]#cat file | tail -n +2 | awk -F "" 'BEGIN {max = 0} {if($ 1> max){max = $ 1}} END {print max}' 14
方法2(配列ソートを使用して最初の値をフェッチする)
[root @ hbhly_60_213〜]#cat file | tail -n +2 | awk -F "" '{number [$ 1] = $ 1} END {for(i in number){print number [i] | "sort -nr | 1" -nヘッド}}」 14
2.最小IDを見つける
方法1(比較にプリセット値を使用)
[root @ hbhly_60_213〜]#cat file | tail -n +2 | awk -F "" 'BEGIN {min = 5} {if($ 1 <min){min = $ 1}} END {print min}' 5
ただし、これには欠点があります。最小値を事前に指定する必要があります。$ 1を使用して取得すると、取得した値は空になります
[root @ hbhly_60_213〜]#cat file | tail -n +2 | awk -F "" 'BEGIN {min = $ 1} {if($ 1 <min){min = $ 1}} END {print min}'
方法2(配列ソートを使用して最初の値をフェッチする)
[root @ hbhly_60_213〜]#cat file | tail -n +2 | awk -F "" '{number [$ 1] = $ 1} END {for(i in number){print number [i] | "sort -n | head -n 1 "}} ' 5
3. idの合計を取り出します
[root @ hbhly_60_213〜]#cat file | tail -n +2 | awk -F "" '{sum + = $ 1} END {print sum}' 95
4. idの平均値を計算します
[root @ hbhly_60_213〜]#cat file | tail -n +2 | awk -F "" '{sum + = $ 1} END {print sum /(NR-1)}' 10.5556