如何高亮dmidecode -t memory输出中的空内存插槽并解决颜色失效问题
解决dmidecode内存信息中Unknown和DIMM的高亮问题
修正后的完整命令
直接使用以下命令即可实现Unknown和DIMM的白字红底高亮:
dmidecode -t memory | awk ' /\tDevice/{i++; print "Device "i} /\tSpeed|GB|Factor|Device/{ gsub(/Unknown|DIMM/, "\033[37;1;41m&\033[0m") print $0 } '
关键调整说明
- 改用
\033替代原颜色序列里的\e:部分awk版本对\e转义支持不佳,\033是ANSI转义序列的标准写法,兼容性更好 - 用
gsub()全局替换匹配内容:&代表匹配到的Unknown或DIMM字符串,前后分别加上颜色启动序列和恢复默认颜色的\033[0m,避免后续文本持续保持高亮 - 整合原命令的打印逻辑:把设备计数和参数输出的逻辑合并,减少重复处理
颜色不显示的排查点
- 确保终端支持ANSI颜色:现代终端(如gnome-terminal、iTerm2、xterm)均支持,老旧终端可能需要开启相关设置
- 若通过管道输出到分页工具(如less),需加
-R参数保留颜色:dmidecode ... | awk ... | less -R - 确保获取完整内存信息:部分系统需要sudo权限执行dmidecode,命令改为
sudo dmidecode -t memory | awk ...
内容的提问来源于stack exchange,提问作者Anna R
相关产品推荐
相关产品推荐

