相关疑难解决方法(0)

在Bash中将命令的输出读入数组

我需要将脚本中的命令输出读入数组.该命令例如是:

ps aux | grep | grep | x 
Run Code Online (Sandbox Code Playgroud)

并且它按行给出输出,如下所示:

10
20
30
Run Code Online (Sandbox Code Playgroud)

我需要将命令输出中的值读入数组,然后如果数组的大小小于3,我将做一些工作.

arrays bash

83
推荐指数
3
解决办法
11万
查看次数

在shell脚本中解析json数组

我需要从json字符串打印键和值.我已经解析了一个简单的json字符串

            {
              "Name": "test1",
              "CreateDate": "2016-08-30T10:52:52Z",
              "Id": "testId1",
            }
Run Code Online (Sandbox Code Playgroud)

我的代码是这样的

 q1=$(echo $x | grep -Po '"Name":.*?[^\\]",'| perl -pe 's/"Name": //; s/^"//; s/",$//');

 q2=$(echo $x | grep -Po '"Id":.*?[^\\]",'| perl -pe 's/"Id": //; s/^"//; s/",$//');

    echo $q1 "," $q2;
Run Code Online (Sandbox Code Playgroud)

但是这段代码不适用于像这样的json字符串

x='{    "TestNames":
        [{
        "Name": "test1",
        "CreateDate": "2016-08-30T10:52:52Z",
        "Id": "testId1"
         }, 
         {
        "Name":  "test2",
        "CreateDate": "2016-08-30T10:52:13Z",
        "Id": "testId2"
    }]
}';
Run Code Online (Sandbox Code Playgroud)

我需要像这样打印

test1 , testId1
test2 , testId2
Run Code Online (Sandbox Code Playgroud)

是否可以使用grep命令获取这样的数据?

unix bash shell grep json

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

bash ×2

arrays ×1

grep ×1

json ×1

shell ×1

unix ×1