我正在尝试通过Node JS运行shell脚本。我正在使用child_process和spawn来执行shell脚本。
Server.js
var deploysh = spawn('sh', [ 'VO.sh']);
shell脚本有一个awk脚本,它读取文件并尝试查找一些数据。
VO.sh
file='/home/sivasubr/node-project/VO.txt'
awk -F":" '{
a[$1]+=$2
count[$1]++
if(max[$1] < $2) max[$1]=$2
if(min[$1]==NULL) min[$1]=$2
if(min[$1] > $2) min[$1]=$2
}
END{
for(i in a)
print i, a[i]/count[i], max[i], min[i]
}' $file
awk语句返回如下内容:
VO1: 15 10 5
VO2: 10 5 2
我需要将此awk语句的输出转换为JSON对象,以便我可以将数据表示为图形/图表。我该怎么做呢?
答案 0 :(得分:0)
如果您不发出冒号,可以使用jq
解析以下文本:
VO1 15 10 5
VO2 10 5 2
命令:
... awk ... | head -c-1 |
jq '. | split("\n") | map( split(" ") | { label: .[0], avg: .[1], max: .[2], min: .[3] } )' -Rs
输出:
[
{
"label": "VO1",
"avg": "15",
"max": "10",
"min": "5"
},
{
"label": "VO2",
"avg": "10",
"max": "5",
"min": "2"
}
]