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

如何拆分各内存条输出信息并移除空插槽及Unknown内容?

解决dmidecode内存信息过滤与分组问题

直接用这个改进后的awk命令就能实现你要的效果:

dmidecode -t memory | awk '
    /^\tForm Factor/ {
        if (current_slot && slot_has_data) {
            print ""
        }
        i++
        current_slot = "Memory " i
        slot_has_data = 0
        # 跳过空插槽
        if ($NF == "Empty") {
            current_slot = ""
            next
        }
        print current_slot
    }
    current_slot != "" && /^\t(Size|Speed|Type)/ {
        # 过滤Unknown和空值
        if ($NF != "Unknown" && $NF != "") {
            print "  " $0
            slot_has_data = 1
        }
    }
'

命令逻辑拆解:

  • 当匹配到Form Factor行时:
    • 如果上一个插槽有有效数据,先输出空行分隔不同内存条
    • 递增计数器生成Memory X分组名
    • 检查如果是Empty插槽,直接跳过不创建分组
  • 只对已创建的有效分组(非空插槽),匹配Size/Speed/Type这些关键信息行:
    • 过滤掉值为Unknown或空的无效行
    • 保留的有效行前面加两个空格缩进,和分组名区分开
    • 标记该插槽有有效数据,方便后续分隔不同分组

如果需要显示更多字段(比如厂商、型号),只需修改第二个正则里的字段列表,比如改成/^\t(Size|Speed|Type|Manufacturer|Part Number)/即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 02:33:28