カール出力の特定文字数の計算

カール出力の特定文字数の計算

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"

おすすめ記事