You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下获取queue大小及指定表格/queue行数的技术问询

嘿,我来帮你搞定这两个问题:

1. 如何在Linux中获取Queue的大小?

Linux里的队列分不同类型,常见的有SysV消息队列和POSIX消息队列,获取大小的方法略有不同:

  • SysV消息队列
    先通过ipcs -q查看所有SysV消息队列的信息,输出里会包含队列ID、已用字节数、消息数量等字段。如果要提取特定队列的消息数量,可以用:

    ipcs -q | grep <你的队列ID> | awk '{print $6}'
    

    要是你需要的是已使用的字节大小,就把$6换成$5——因为ipcs -q的输出列依次是:key、msqid、owner、perms、used-bytes、messages。

  • POSIX消息队列
    POSIX消息队列通常挂载在/dev/mqueue/目录下,先通过ls -l /dev/mqueue/查看存在的队列。要获取队列的当前消息数(也就是队列大小),可以读取队列的属性文件:

    cat /dev/mqueue/<你的队列名称> | grep curmsgs | awk -F= '{print $2}'
    

    这个命令会提取出curmsgs的值,也就是当前队列里的消息数量。

2. 获取表格/Queue的精确行数并输出数字结果

针对你提供的表格,要只输出数据行的数量(也就是5),可以用以下几种方法:

方法一:处理本地文件

如果表格已经保存到queue_table.txt文件中,运行这个命令:

grep -v "^|.*\+" queue_table.txt | grep -v "^| E1" | wc -l

解释一下:

  • grep -v "^|.*\+":排除掉表格的分隔线(以|开头且包含+的行)
  • grep -v "^| E1":排除表头行(以| E1开头的行)
  • wc -l:统计剩下的行数,也就是数据行的数量,直接输出5

方法二:直接处理命令输出

如果这个表格是某个命令(比如获取队列内容的命令)的输出,可以直接管道处理:

<你的队列查询命令> | grep -v "^|.*\+" | grep -v "^| E1" | wc -l

这样就能直接得到数据行的数字结果。

更简洁的awk写法

你也可以用awk一步完成,避免多次grep:

awk '!/^(\|.*\+|\| E1)/{count++} END{print count}' queue_table.txt

这个命令会直接输出5,不需要再搭配wc -l。


内容的提问来源于stack exchange,提问作者BlackForest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:42:37