#!/bin/bash # 问题提炼:3306端口 状态是established 按 连接数 降序排序 # 思路: # grep 查出状态是established的行 # 第一个awk 默认空格分隔的情况下 打印所有 $5 # 第二个awk 用 : 分隔字符串 # 判断$2等于3306 # 按输出要求,使用关联数组 grep 'ESTABLISHED' nowcoder.txt | awk '{ print $5 }' | awk -F ":" ' { if ($2 == "3306") arr[$1]++ } END{ for (i in arr) print arr[i], i } ' | sort -k1nr # -k 指定哪列排序 # 1 第1列 # n 按数字排序,因为默认是字母排序 # r 逆序排序
END