如何在Linux Shell中提取JSON里crumb字段的值?
提取JSON中crumb字段值的Shell方法
推荐方法:使用jq(专业JSON处理工具)
jq是处理JSON数据的最优选择,能避免正则匹配可能出现的格式问题。如果系统未安装,可通过包管理器安装(如apt install jq或yum install jq)。
- 从文件读取并提取:
jq -r '.crumb' res.txt - 若JSON内容来自管道输入(比如其他命令的输出):
cat res.txt | jq -r '.crumb'
-r参数用于输出不带引号的原始字符串值。
无jq时的替代方案
如果无法安装jq,可以用正则类工具实现:
使用sed
sed -n 's/.*"crumb":"\([^"]*\)".*/\1/p' res.txt
原理:匹配包含"crumb":"的行,捕获引号内的内容并输出。
使用awk
awk -F '"' '/"crumb":/{print $4}' res.txt
原理:以双引号为分隔符,定位到包含"crumb"的行,输出第4个字段(对应crumb的值)。
说明
你之前用grep "\"crumb\":" res.txt只能提取包含crumb字段的整行,无法直接获取字段值,因此需要结合上述工具进一步处理。
内容的提问来源于stack exchange,提问作者Mohamed Farag
相关产品推荐
相关产品推荐

