Estou criando um script bash para verificar qual código HTTP uma determinada URL está retornando. Tenho arquivo com cerca de 50k de URLs no formato JSON; é o primeiro (cabeçalho):
"responseHeader":{
"status":0,
"QTime":7336},
"response":{"numFound":50032,"start":0,"maxScore":1.0,"docs":[
{
"documentURL":"http....."},
and so on
Preciso fazer um loop neste arquivo, verificar qual código HTTP cada URL está retornando e salvá-lo em outro arquivo no formato código HTTP + URL. Até agora, tenho apenas este comando curl para verificar o código http
curl -s -o /dev/null -I -w "%{http_code}\n" URL >> httpCodeFile
Agradeço qualquer ajuda e conselhos sobre quais ferramentas/abordagem (grep,awk,sed) devo usar.
Eu criei esta função para obter o URL do arquivo, mas tenho certeza sobre a sintaxe:
function checkHTTP(){
cat URL_list | while read line
do
var = $(grep documentURL) URL_list
curl -s -o /dev/null -I -w "%{http_code}\n" ${var} + " TEST " >> httpCodeFile
done
}
Estou obtendo apenas 000, apesar de muitos URLs retornarem 404.
O caminho certo com
jq
+curl
solução:Amostra válida
input.json
:Em processamento:
http_codes.out
O conteúdo resultante :