Shell-Script
如何提取 curl 命令的部分輸出並將其分配給 shell 變數 - 第 2 部分?
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 188 100 188 0 0 180 0 0:00:01 0:00:01 --:--:-- 180{"result":{"fileId":"3a29ca7a-813a-4b3b-9b9c- 6f9251d2171d","percentComplete":100.0,"status":"complete"},"meta":{"requestId":"*************************************************************************","httpStatus":"200 - OK"}}
再次 - 我需要提取“fileId”後面的突出顯示部分:
我嘗試使用以下 -
VAR2="$(curl <...> | sed -E -n 's/.*fileId":"([^"]+).+/\2/p')"
但是當我執行 echo $VAR2 時,我沒有得到任何輸出
ps 理想情況下,我希望僅在 percentComplete:100.0 時發生這種情況(但這不是優先級,提取 fileId 是目前的優先級)
這應該有效:
VAR2="$(curl<..> | sed -E -n 's/.*fileId":"([^"]+).+/\1/p')"
您嘗試的問題是您
\2
在sed
命令中使用了,但您只有一個正則表達式組。我認為您應該查看sed
資訊頁面以了解其sed
工作原理。