Ниже приведен фрагмент кода (обратите внимание на точное response_code
сравнение с 200
):
code=200
xargs -P20 -I@ sh -c "test \$(curl -I -s -w "%{response_code}" http://@/index.html -o/dev/null) -eq $code && echo @ has code $code" < list.txt
Если вы предпочитаете использовать для него grepping, то выполните:
code=200
xargs -P20 -I@ sh -c "curl -I -s http://@/index.html | head -1 | grep -qw $code && echo @ has code $code" < list.txt
Затем немного более оптимизированный, позволяющий указать оба параллелизма (-P20
), а также позволяющий каждому вызову curl обрабатывать более чем 1 URL (-n4
, меньше разветвления):
code=200
xargs -n4 -P20 -I@ curl -I -s -w "%{response_code}: @\n" http://@/index.html -o/dev/null | egrep "^$code:" < list.txt