Vir*_*nde 1 sed shell-script regular-expression curl
% 总计 % 已接收 % Xferd 平均速度 时间 时间 时间 当前 Dload 上传总花费左速度 100 277 100 174 100 103 464 274 --:--:-- --:--:-- --:--:--第736 章 res"},"meta":{"requestId":"************************","httpStatus":"200 - 好的”}}
我需要提取以 ES_ 开头的突出显示部分
我尝试使用
curl <...> | sed '"progressId"\:"(ES_[A-Za-z0-9]{15})'
Run Code Online (Sandbox Code Playgroud)
但是它仍然将整个输出存储在环境变量中。
最好使用json解析工具来解析json。jq
是一种流行的。
set -o pipefail # if supported by your shell
var=$(curl -s "$url" | jq -r .result.progressId) || exit
Run Code Online (Sandbox Code Playgroud)
或者:
json=$(curl -s "$url") || exit
var=$(printf '%s\n' "$json" | jq -r .result.progressId) || exit
Run Code Online (Sandbox Code Playgroud)
(这允许您稍后从该 json 数据中提取更多信息)。