如何使用Grep从JSON保存值
我只是想知道如何保存is_verified:true值“Usernames” 例如,在下面保存,因为他们得到了“is_verified”:true, 所以要保存获得“is_verified”的用户的用户名:true 已尝试:grep-Po“已验证”:true 但是尝试失败了如何使用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":
我希望有人能帮助我。如果所有属性的值都会给出,那么
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