0

curl重定向检测输出表格格式化:3个实战方案让巡检数据一目了然

2026.06.15 | youres | 7次围观

为什么要把curl重定向检测结果输出成表格?

做网站巡检时,curl命令能快速检测重定向链路,但默认输出是一堆散乱的文本,人工核对费时费力。把检测结果格式化成表格(CSV、JSON、HTML),可以让数据直接导入Excel、被程序解析、或生成可视化报告,巡检效率直接提升一个档次。

本文用3个实战方案,教你把curl重定向检测结果输出成标准表格格式,覆盖CSV、Markdown Table、HTML Table三种最常用的表格场景。

方案1:输出CSV表格(最通用,Excel直接打开)

CSV是最通用的表格格式,Excel、Numbers、Google Sheets都能直接打开。核心思路是用curl的-w参数自定义输出格式,再用awksed拼成CSV行。

1.1 单条URL检测输出CSV

# 定义输出模板(保存为 curl_redirect_csv.txt)
cat > curl_redirect_csv.txt << 'EOF'
%{url_effective},%{num_redirects},%{http_code},%{time_total}
EOF

# 执行检测并输出CSV格式
curl -L -w "@curl_redirect_csv.txt" -o /dev/null -s "https://example.com"

输出示例:

https://example.com/final,2,200,0.345

这就是一行标准CSV,包含:最终URL、重定向次数、HTTP状态码、总耗时。

1.2 批量URL检测输出CSV报告

#!/bin/bash
# 批量检测脚本:读取urllist.txt,输出redirect_report.csv

echo "原始URL,最终URL,重定向次数,状态码,总耗时(s)" > redirect_report.csv

while IFS= read -r url; do
    result=$(curl -L -s -o /dev/null \
        -w "%{url_effective},%{num_redirects},%{http_code},%{time_total}" \
        "$url")
    echo "$url,$result" >> redirect_report.csv
done < urllist.txt

echo "CSV报告已生成:redirect_report.csv"

生成的redirect_report.csv直接用Excel打开,数据分列整齐,可排序、筛选、做图表。

方案2:输出Markdown表格(适合文档/报告嵌入)

如果你要把检测结果嵌入技术文档、GitHub README、或运维报告,Markdown表格是最合适的格式,排版整洁、可读性强。

2.1 单条检测结果转Markdown表格

#!/bin/bash
url="https://example.com"

read -r final_url redirects http_code time_total <<< $(curl -L -s -o /dev/null \
    -w "%{url_effective} %{num_redirects} %{http_code} %{time_total}" \
    "$url")

cat << EOF
| 检测项 | 值 |
|--------|-----|
| 原始URL | $url |
| 最终URL | $final_url |
| 重定向次数 | $redirects |
| HTTP状态码 | $http_code |
| 总耗时(秒) | $time_total |
EOF

2.2 批量检测输出Markdown表格报告

#!/bin/bash
# 批量检测并输出Markdown表格

echo "| 原始URL | 最终URL | 重定向次数 | 状态码 | 总耗时(s) |"
echo "|----------|----------|-------------|---------|-------------|"

while IFS= read -r url; do
    read -r final_url redirects http_code time_total <<< $(curl -L -s -o /dev/null \
        -w "%{url_effective} %{num_redirects} %{http_code} %{time_total}" \
        "$url")
    echo "| $url | $final_url | $redirects | $http_code | $time_total |"
done < urllist.txt

输出直接粘贴到Markdown文档,渲染后就是一张整齐的表格。

方案3:输出HTML表格(适合邮件告警/网页展示)

当需要把检测结果通过邮件发送、或嵌入监控系统的Web界面时,HTML表格是最佳选择,可以带样式、高亮异常数据。

3.1 批量检测生成HTML表格报告

#!/bin/bash
# 生成HTML表格报告

html_file="redirect_report_$(date +%Y%m%d).html"

cat > "$html_file" << 'HEADER'



    
    重定向检测报告
    
    
    
          
	      
	
    


    

重定向检测报告

HEADER while IFS= read -r url; do read -r final_url redirects http_code time_total <<< $(curl -L -s -o /dev/null \ -w "%{url_effective} %{num_redirects} %{http_code} %{time_total}" \ "$url") row_class="" if [ "$http_code" -ne 200 ]; then row_class="class=\"error\"" fi cat >> "$html_file" << EOF EOF done < urllist.txt cat >> "$html_file" << 'FOOTER'
原始URL 最终URL 重定向次数 状态码 总耗时(s)
$url $final_url $redirects $http_code $time_total
FOOTER echo "HTML报告已生成:$html_file"

生成的HTML文件直接用浏览器打开,表格带斑马纹样式,状态码非200的行红色高亮,异常一目了然。

三种表格格式对比:怎么选?

格式适用场景优点缺点
CSV数据分析、Excel处理、程序导入通用性强,Excel直接打开无样式,纯数据
Markdown表格技术文档、README、报告排版整洁,可读性强需要渲染环境
HTML表格邮件告警、Web展示、打印带样式,可高亮异常文件体积较大

实际运维中,建议三种格式一起输出:CSV存档分析、Markdown嵌入报告、HTML发邮件告警,一套数据多处复用。

进阶:用jq输出JSON再转表格(适合API对接)

如果巡检系统需要API对接,可以先输出JSON,再用jq转成任意表格格式。

# 输出JSON格式
curl -L -s -o /dev/null \
    -w "{\"final_url\": \"%{url_effective}\", \"redirects\": %{num_redirects}, \"http_code\": %{http_code}, \"time_total\": %{time_total}}" \
    "https://example.com" | jq .

# 批量检测输出JSON数组
# (参考本博客《curl批量检测重定向结果JSON格式存储》一文)

内链推荐

总结

curl重定向检测输出表格格式化,核心是用好-w参数自定义输出字段,再用Shell脚本拼成目标格式。CSV适合数据分析、Markdown适合文档嵌入、HTML适合邮件告警,三种格式覆盖运维场景。

实战中推荐批量检测脚本+多格式输出,一套巡检数据同时生成CSV/Markdown/HTML三种报告,巡检效率直接翻倍。

版权声明

本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论