Как я могу записать URL и связанное состояние HTTP URL в другом файле?

У меня есть файл, содержащий URL веб-сайтов. Я пытаюсь записать сценарий удара, который возьмет любой файл, содержащий URL, и запишет в другой файл - URL и связанный код состояния.
То, чего я пытаюсь достигнуть, здесь:
У меня есть URL в файле как:

http://google.com
http://trafficinviter.com
http://stackoverflow.com   
............
............
Upto 30 crore lines of URL in a file.   

Я использую cURL команда для получения Состояния Http этих URL.
Следовательно, я не понимаю, как я могу получить URL и соответствующее состояние HTTP того URL.
Скажите, что у меня должен быть вывод в файле как это:

    http://google.com
    200 ok    
    http://trafficinviter.com
    200 ok
    http://stackoverflow.com   
    200 ok
    http://example.com
    404 
    ............
    ............
    Upto 30 crore lines of URL in a file. 

Также я ищу удар, который делает мою работу сделанной в один миг и легко. Поскольку существует много строк, я не могу найти надлежащее решение для этого. Любезно, помогите мне.Большое спасибо.

1
задан 4 January 2017 в 09:50

2 ответа

Попытка:

while read url
do
    echo "$url"
    curl -sI "$url" | head -1
done < list-of-urls > output-file

Это просто читает каждую строку входа от list-of-urls файл, производит его назад и затем получает первую строку вывода от curl -I на том URL (который является состоянием ответа HTTP). Вывод всего цикла переходит в output-file.

Для тестирования нескольких URL сразу используйте параллель GNU :

GNU parallel makes sure output from the commands is the same output as
you would get had you run the commands sequentially. This makes it
possible to use output from GNU parallel as input for other programs.

, Например:

parallel -a list-of-urls 'echo {}; curl -sI {} | head -1' > output-file

Никакие гарантии, что вывод будет в порядке, хотя:

$ cat output-file
http://example.com
HTTP/1.1 200 OK
http://google.com
HTTP/1.1 302 Moved Temporarily
http://stackoverflow.com
HTTP/1.1 200 OK
http://trafficinviter.com
HTTP/1.1 200 OK
3
ответ дан 7 December 2019 в 12:36

С Параллелью GNU Вы сделали бы что-то как:

cat input | parallel -k -j 100 --tag 'curl -sI {} | head -1'
0
ответ дан 7 December 2019 в 12:36

Другие вопросы по тегам:

Похожие вопросы: