【问题标题】:How to output first line of curl result in a file with bash script如何在带有 bash 脚本的文件中输出第一行 curl 结果
【发布时间】:2019-08-13 21:51:11
【问题描述】:

我想读取一个 url 文件,卷曲每个 url,只获取包含 HTTP 代码的第一行。我在 Cmder 内的 Windows 10 下运行。

#!/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"

但是输出文件是空的,谢谢

【问题讨论】:

  • 您是否也遇到了一堆错误?
  • @thatotherguy 不,我没有看到错误,我在 Windows 10 下的 Cmder 中运行

标签: bash curl grep


【解决方案1】:

假设 urls.csv 只是一个简单的 URL 列表,并且您正在使用 linux 系统(或任何具有 /dev/null 的系统),以下命令将向每个 URL 发送 HEAD 请求并将它们输出到 HTTP 响应旁边代码。

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

请参阅curl man page 了解更多信息。

【讨论】:

  • 您好,谢谢,我没有设法让它在 Cmder Windows 10 中运行,但在 Linux 上运行正常,现在您能告诉我如何在文件中输出 HTTP 代码 + url ?谢谢
【解决方案2】:

在回复您关于输出 HTTP 代码的查询时,这在标题的第二行中给出。您可以通过以下方式获得:

export IFS=$; # This is required to stop everything coming out on one line!
curl -i <domain> | head -n 2

【讨论】:

    猜你喜欢
    • 2014-12-12
    • 1970-01-01
    • 2015-12-01
    • 2017-12-19
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    相关资源
    最近更新 更多