如何在curl
中为bash
输出中的某个网址列表计算模式的次数?
例如,如果url.txt
中的网址为:
xy.com/test.php
xy.com/test2.php
xy.com/test3.php
并且test.php
和test2.php
都返回:
{"error":null,"result":true}
我希望计算响应{"error":null,"result":true}
发生的次数,当我执行命令时,得到这个:
$ curl -i url.txt ....
...
...
Matched result: 2
答案 0 :(得分:3)
如果我正确理解您的问题,您希望使用url.txt
从curl
文件(每行一个)获取所有网址,并计算{{1}的次数}字符串出现。
你可以这样做:
{"error":null,"result":true}
我们将$ <url.txt xargs -n1 curl -s -i | grep -F '{"error":null,"result":true}' -c
2
发送到url.txt
(假设网址被正确引用,没有空格),一次只调用xargs
一个网址(由于curl
选项) 。来自-n1
的{{1}}的进度输出被curl
静音,而-s
告诉-c
输出计数而非匹配,而grep
仅查找给定的固定字符串(不是模式匹配)。
答案 1 :(得分:1)
使用命令替换,它看起来像这样:
curl -i $(cat url.txt)|grep -c '{"error":null,"result":true}'
将输出管道输出到grep -c
使得grep将返回您要查找的字符串匹配的数字。