You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Bash脚本将Whois查询结果追加到域名列表对应行后

解决方案:域名与WHOIS Registrar URL对应输出

修正后的Bash脚本

可以通过捕获每个域名的WHOIS查询结果,确保域名与结果一一对应,无结果时显示NULL。以下是修正后的脚本:

#!/bin/bash
while IFS= read -r domain; do
    # 跳过空行
    [[ -z "$domain" ]] && continue
    # 提取Registrar URL,兼容不同格式的WHOIS输出
    registrar_url=$(whois "$domain" | grep -oP 'Registrar URL:\s*\K.*')
    # 若结果为空则设为NULL
    [[ -z "$registrar_url" ]] && registrar_url="NULL"
    # 输出"域名 结果"格式
    echo "$domain $registrar_url"
done < list.txt

关键改进点

  • 结果关联:将每个域名的WHOIS查询结果存入变量,再与域名一起输出,彻底避免结果错位问题。
  • 精准提取:使用grep -oP的Perl正则语法,适配不同WHOIS服务器的输出格式,准确提取Registrar URL:后的内容。
  • 空值处理:自动将空结果替换为NULL,同时跳过列表中的空行,避免无效查询。

其他实现方式

如果想简化脚本,也可以用xargs结合单条命令实现:

xargs -I {} sh -c 'url=$(whois {} | grep -oP "Registrar URL:\s*\K.*"); echo "{} ${url:-NULL}"' < list.txt

通过xargs遍历每个域名,用${url:-NULL}在结果为空时自动替换为NULL,同样能保证域名与结果严格对应。

内容的提问来源于stack exchange,提问作者Zucoa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 18:57:43