컬 명령 출력의 일부를 추출하여 쉘 변수에 할당하는 방법 - 2부?

컬 명령 출력의 일부를 추출하여 쉘 변수에 할당하는 방법 - 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를 실행하면 출력이 나오지 않습니다.

p.s. 이상적으로는 완료율: 100.0에서만 발생하기를 바랍니다(그러나 이는 우선순위가 아니며 현재는 fileId를 추출하는 것이 우선순위입니다).

답변1

이것은 작동합니다:

VAR2="$(curl<..> | sed -E -n 's/.*fileId":"([^"]+).+/\1/p')"

시도의 문제점은 명령 \2에서 사용하고 있지만 sed정규식 그룹이 하나만 있다는 것입니다. 확인해보시면 될 것 같아요sed 정보 페이지어떻게 sed작동하는지 알아보세요.

관련 정보