首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用shell解析diskstats并以JSON格式输出?

如何使用shell解析diskstats并以JSON格式输出?
EN

Stack Overflow用户
提问于 2012-09-19 01:52:12
回答 1查看 859关注 0票数 1

使用bash脚本,我尝试从/proc/diskstats获取所有物理磁盘

代码语言:javascript
复制
   8       0 sda 14256 20634 1376722 133628 279800 2362075 21135024 2133492 0 261052 2259536
   8       1 sda1 14105 20634 1375514 133520 279800 2362075 21135024 2133492 0 261036 2259432
   2       0 fd0 0 0 0 0 0 0 0 0 0 0 0

并以如下格式回显它们的名称

代码语言:javascript
复制
{
  "data":[
  { "{#DISK}":"sda"},
  { "{#DISK}":"sdb"},
  ]
}

我正在尝试以这样一种方式来实现这一点,这种方式将被安装有Linux 2.6+的系统支持。我还希望避免在diskstats中显示的分区,它有4个字段,而不是磁盘的11个字段。

编辑:

我可以使用以下命令获取磁盘名称

代码语言:javascript
复制
cat /proc/diskstats | awk '{print $3}'

代码语言:javascript
复制
cat /proc/diskstats | head -1 | awk '{print $3}'

但是我不确定如何遍历和格式化它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-19 03:13:58

假设您的设备名称中没有双引号(trollface.jpg),您可以坚持使用awk。

代码语言:javascript
复制
BEGIN {
  print "{"
  printf "  \"data\": ["
  first=1
}

!first {
  printf ","
}

NF == 14 {
  printf "\n  { \"{#DISK}\":\""$3"\"}"
  first=0
}

END {
  print "\n  ]"
  print "}"
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12482359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档