我需要将脚本中的命令输出读入数组.该命令例如是:
ps aux | grep | grep | x
Run Code Online (Sandbox Code Playgroud)
并且它按行给出输出,如下所示:
10
20
30
Run Code Online (Sandbox Code Playgroud)
我需要将命令输出中的值读入数组,然后如果数组的大小小于3,我将做一些工作.
我需要从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命令获取这样的数据?