首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WHOIS BASH脚本有时不获取数据

WHOIS BASH脚本有时不获取数据
EN

Stack Overflow用户
提问于 2020-03-17 19:46:26
回答 1查看 108关注 0票数 0

我的whois bash脚本适用于一些域,但不适用于其他域。

当我在同一个域的终端中直接运行该命令时,我能够看到输出。此外,有时脚本不能正常运行并卡住,然后我需要中断它。

为什么会这样,我该如何修复它呢?

假设domain.txt文件包含: gmail.com、zoom.us、facebook.com、bank.com等。

脚本是:

代码语言:javascript
复制
#!/bin/bash
echo "Please enter the full path of txt file"
read path
filename=$path
while read line
do
    echo "Checking domain $line"
    a=$(whois $line | grep -i -e "Creation Date" | head -1)
    b=$(whois $line | grep -i -e "no match" | head -1)
    echo "$a"$line >> /root/outputdomain.csv
done <$filename
echo "file has been processed successfully."

示例输入txt文件为:

代码语言:javascript
复制
linkedin.com
zoom.us
sbi.co.in
facebook.com
sap.com
hsbc.com

预期输出为:

代码语言:javascript
复制
Creation Date: 2002-11-02T15:38:11Z linkedin.com
Creation Date: 2002-04-24T15:03:39Z zoom.us

目前对我有用的是:

代码语言:javascript
复制
Creation Date: 2002-11-02T15:38:11Z linkedin.com
Creation Date: 1997-03-29T05:00:00Z facebook.com

但是zoom.us,sbi.co.in没有输出。

如果我运行下面的命令,我可以获取所需的数据:

代码语言:javascript
复制
$ whois zoom.us | grep -E "Creation Date" | head -1
Creation Date: 2002-04-24T15:03:39Z
EN

回答 1

Stack Overflow用户

发布于 2020-03-17 21:39:49

我不使用/知道whois,但根据你的帖子,这就是我想出来的。

代码语言:javascript
复制
#!/usr/bin/env bash

shopt -s extglob
echo "Please enter the full path of txt file"
read -r path
filename=$path
while read -r line; do
  printf 'Processing %s\n' "$line"...
  if a=$(whois "$line" | grep --line-buffer -Fi -m1 "creation date"); then
    printf '%s %s\n' "${a##*+([[:blank:]])}" "$line" >> outputdomain.csv
  else
    printf  '%s No domain match\n' "$line" >> outputdomain.csv
  fi
  sleep 5
done < "$filename"

  • -m可能不是POSIX,但它在GNUBSD grep中。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60721776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档