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

如何使用awk/sed更高效处理dmidecode输出数据

更高效的精简实现

原命令串联了3次文本处理进程,存在不必要的性能开销,以下两种单文本处理工具的实现都可以达到完全一致的输出效果,执行效率更高:

awk 实现(推荐)

仅需单次awk调用完成全部匹配、提取、输出逻辑,匹配完所有目标字段后直接退出进程,无需读取冗余输入:

dmidecode -t 4 | awk '
/Signature/ {
    for(i=1; i<=NF; i++) {
        if ($i == "Model") model = $(i+1)
        if ($i == "Stepping") stepping = $(i+1)
    }
    gsub(/,/, "", model)
    print model, stepping
}
/L1 Cache Handle/ {
    print " " $4
    exit
}
' >> data

逻辑说明

  • 匹配到Signature所在行时,遍历行内字段定位Model、Stepping后的取值,移除Model值自带的逗号后按原格式输出
  • 匹配到L1 Cache Handle所在行时,直接提取第4列的句柄值输出,随后立刻终止awk进程,避免继续读取后续无效内容
  • 全程仅启动dmidecode、awk两个进程,无多余管道和grep调用,资源开销远低于原多管道写法

sed 实现

如果偏好sed写法,也可以通过正则捕获组完成提取,同样匹配完目标内容后直接退出:

dmidecode -t 4 | sed -n '
/Signature/s/.*Model \([0-9]\+\),.*Stepping \([0-9]\+\).*/\1, \2/p
/L1 Cache Handle/ {
    s/.*Handle: *\(0x[0-9a-fA-F]\+\).*/ \1/p
    q
}
' >> data

两种实现写入data文件的内容和原命令的输出完全一致,为:

49, 0
 0x002E

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 17:42:15