从此字符串中输出grep值的最简单方法

时间:2014-11-25 13:20:39

标签: bash awk

我正在bash shell中执行一个命令,它输出以下示例结果:

{
    "outcome" => "success",
    "result" => 1303L
}

使用bash / awk或其他方法收集“结果”(在我的情况1303中)的值的最简单方法是什么?
谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用下面的grep,

grep -oP '"result"\s*=>\s*\K\S+' file

仅获取result

值中的数字
grep -oP '"result"\s*=>\s*\K\d+' file

将输出保存到变量

$ var=$(grep -oP '"result"\s*=>\s*\K\d+' file)
$ echo "$var"
1303

答案 1 :(得分:1)

这应该做:

awk '/result/{print +$3}' file
1303

或变量:

var=$(awk '/result/{print +$3}')

答案 2 :(得分:0)

使用awk如下:

var=$(awk -F'=> ' '/result/ {print +$2}' myfile)

将导致1303