我有这个json:
# coverage/.last_run.json
{
"result": {
"covered_percent": 100.0
}
}
我想获得100
键的非舍入整数(在本例中为covered_percent
)。我不想使用jq
,ruby
,python
,perl
等,只是在标准的ubuntu安装上提供的简单的unix工具。到目前为止,我有这个:
grep -o '"covered_percent":.*[0-9]*' coverage/.last_run.json | sed 's/"covered_percent": //g' | sed 's/\.[0-9]*//g'
如何让它变得更好?
答案 0 :(得分:1)
好吧,如果你真的不想使用jq
,awk可能就是答案:
$ awk '/covered_percent/ {print substr($0,match($0,/[0-9]+/),RLENGTH)}' file
100
序列化grep
也可以解决问题:
$ grep covered_percent file | grep -o [1-9][0-9]* | head -1
head
99.99
返回时需要 grep -o
:
99
99
这两种解决方案都将因输入而失败。 1,例如.9
,并打印9
。这可以通过在[^.]
。