shell统计每列的重复个数

本文介绍两种统计进程句柄(文件)数量的方法:一种是利用awk命令进行统计,无需事先排序;另一种则是通过uniq-c命令实现,但需要先对输出进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:统计每个进程使用的句柄(文件)数
方法一: 使用awk (可不要求排序)
sudo lsof  |  sed '1,2d' | awk '{++map[$1]}END{ for( i in map ){print i,map[i] } }' | sort -rnk 2 
(实际为统计第一列的的重复个数)
解释:map可理解为key-value对象
sort的中的-r表示降序,-n表示把要排序的列当作数字看待,不设置的则按字母顺序排
方法二:使用uniq -c (一定要排序)
sudo lsof |  sed '1,2d' | awk '{print $1}' | sort -k 1 | uniq -c | sort -rnk 1

ps:后面的sort -rnk [NUM] 是方便看最大值.
lsof后的结果
COMMAND     PID        USER   FD      TYPE             DEVICE   SIZE/OFF       NODE NAME
init          1        root  cwd       DIR              253,0       4096          2 /
init          1        root  rtd       DIR              253,0       4096          2 /
init          1        root  txt       REG              253,0      43496    9240630 /sbin/init
init          1        root  mem       REG              253,0     144776    1802242 /lib64/ld-2.5.so
init          1        root  mem       REG              253,0    1722232    1802474 /lib64/libc-2.5.so
init          1        root  mem       REG              253,0      23360    1802489 /lib64/libdl-2.5.so
init          1        root  mem       REG              253,0      95464    1802503 /lib64/libselinux.so.1
init          1        root  mem       REG              253,0     247496    1802467 /lib64/libsepol.so.1
init          1        root   10u     FIFO               0,17        0t0       1350 /dev/initctl
gration       2        root  cwd       DIR              253,0       4096          2 /
migtion       2        root  rtd       DIR              253,0       4096          2 /
migtion       2        root  txt   unknown                                          /proc/2/exe
ksirqd        3        root  cwd       DIR              253,0       4096          2 /
ksirqd        3        root  rtd       DIR              253,0       4096          2 /
ksirqd        3        root  txt   unknown                                          /proc/3/exe
migrtion      4        root  cwd       DIR              253,0       4096          2 /
migrtion      4        root  rtd       DIR              253,0       4096          2 /
migrtion      4        root  txt   unknown                                          /proc/4/exe
ksofirqd      5        root  cwd       DIR              253,0       4096          2 /

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值