Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Grep从JSON保存值_Json_Regex_Grep - Fatal编程技术网

如何使用Grep从JSON保存值

如何使用Grep从JSON保存值,json,regex,grep,Json,Regex,Grep,我只是想知道如何保存is_verified:true值“Usernames” 例如,在下面保存,因为他们得到了“is_verified”:true, 所以要保存获得“is_verified”的用户的用户名:true 已尝试:grep-Po“已验证”:true 但是尝试失败了 我希望有人能帮助我。如果所有属性的值都会给出,那么 cat grep2 | grep '"is_verified": true' -B3 | grep '"username":' | sed 's/ *"username":

我只是想知道如何保存is_verified:true值“Usernames”

例如,在下面保存,因为他们得到了“is_verified”:true, 所以要保存获得“is_verified”的用户的用户名:true

已尝试:grep-Po“已验证”:true

但是尝试失败了


我希望有人能帮助我。

如果所有属性的值都会给出,那么

cat grep2 | grep '"is_verified": true' -B3 | grep '"username":' | sed 's/ *"username": "\(.*\)",/\1/'
第一个
grep
用于查找验证
的条目
值为
true
-B3
选项也将在匹配行上方打印3行。每个
上方的第三行已验证
用户名
字段

第二个
grep
获取所有
username
字段,并使用sed从中提取用户名

输出为:

chrisbrownofficial
meekmill

这段代码可能会帮助您:

 echo $(cat yourJsonFilePath) | tr "," "\n" | grep '"is_verified": true' -B3 | grep '"username"' | sed -r 's/"username"://' | sed -e 's/"\(.*\)"/\1/'
想法是将每个“,”替换为“\n”。然后,grep验证行并检索上面的3行。运行此代码,结果将是:

 chrisbrownofficial
 meekmill

有一些*ix友好的工具专门为JSON提取而设计,比如。使用一个更专注的工具最终可能会非常节省时间。由于某些原因,这不起作用@Terrisamark你在问题中发布的内容似乎不是你想要的。在您的实际输入中,我想不同的字段不是在不同的行中。都在一行吗?张贴您的实际输入。
 echo $(cat yourJsonFilePath) | tr "," "\n" | grep '"is_verified": true' -B3 | grep '"username"' | sed -r 's/"username"://' | sed -e 's/"\(.*\)"/\1/'
 chrisbrownofficial
 meekmill