Как вывести первую строку результата curl в файл со скриптом bash - PullRequest
1 голос
/ 22 марта 2019

Я хочу прочитать файл URL, свернуть каждый URL и получить только первую строку, которая содержит код HTTP. Я работаю под Windows 10 внутри Cmder.

#!/bin/bash
input="urls.csv"
truncate -s 0 dest.csv
while IFS= read -r var
do
    result= `curl -I ${var%$'\r'} | grep HTTP $result`
echo "$var $result" >> dest.csv
done < "$input"

однако выходной файл пуст, спасибо

Ответы [ 2 ]

3 голосов
/ 23 марта 2019

Предполагая, что urls.csv - это простой список URL-адресов, и вы работаете в системе Linux (или любой системе, которая имеет /dev/null), следующая команда отправит запросы HEAD на каждый URL-адрес и выведет их рядом с ответом HTTP. коды.

sed 's/^/url = /; s/\r\?$/\n-o \/dev\/null/' urls.csv |
curl -s -K- -w '%{http_code} %{url_effective}\n' -I >outfile

см. справочную страницу curl для получения дополнительной информации.

0 голосов
/ 23 марта 2019

В ответ на ваш запрос о выводе HTTP-кода это указывается во второй строке заголовка.Вы можете получить это:

export IFS=$; # This is required to stop everything coming out on one line!
curl -i <domain> | head -n 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...