컬 출력의 특정 문자 수 계산

컬 출력의 특정 문자 수 계산

Bash의 내 출력은 다음 curl과 같습니다.

object(\Response\)#1399 (3) {
  ["httpResponse"]=>
  object(GuzzleHttp\Psr7\Response)#1084 (6) {
    ["reasonPhrase":"GuzzleHttp\Psr7\Response":private]=>
    string(2) "OK"
    ["statusCode":"GuzzleHttp\Psr7\Response":private]=>
    int(200)
    ["headers":"GuzzleHttp\Psr7\Response":private]=>
    array(11) {
     ....
     ....
     ....
     ....
    ["status"]=>
    string(2) "ok"
  }
}

내 코드는 다음과 같습니다

while read ID; do
curl  -X -d "http://localhost/new.php?media_id="$ID"&submit=Submit"

done < ~/ids.txt

나는 또한 이것을 추가했습니다 :

curl -s  -X -d "http://localhost/new.php?media_id="$ID"&submit=Submit" | grep -c 'string(2) "ok"'

출력은 입니다 1. 모든 출력을 계산하고 예제를 보여주고 싶습니다.Success : 12

답변1

다음 방법으로 이를 수행할 수 있습니다 grep -c.

f=0
s=0
while read ID; do
    var=$(curl  -X -d "http://localhost/new.php?media_id="$ID"&submit=Submit")
    grep -q 'string(2) "ok"' <<<"$var" && ((s++))
    grep -q 'string(2) "notok"' <<<"$var" && ((f++))
    echo "$var"
done < ~/ids.txt
echo "Success : $s"
echo "Failed : $f"

관련 정보