1

Интересно, может кто-нибудь сказать мне, почему эти awk не работают, они должны указать регистратора и дату истечения срока действия :

${AWK} -F: '/Registrar:/ && $0 != ""  { getline; REGISTRAR=substr($0,2,17) } END { print REGISTRAR }'

а также

awk '/Expiry date:/ { print $3 }'``

это распечатка из whois:

Domain name:
    kurtisbro.co.uk

Registrant:
    kurtis brown

Registrant type:
    UK Individual

Registrant's address:
    23 Cambria Mews
    NOTTINGHAM
    NG3 4GZ
    United Kingdom

Registrar:
    Heart Internet Ltd t/a eXtend [Tag = EXTEND]

Relevant dates:
    Registered on: 01-Mar-2012
    Expiry date:  01-Mar-2014
    Last updated:  23-Jun-2012

Registration status:
    Registered until expiry date.

Name servers:
    ns.mainnameserver.com
    ns2.mainnameserver.com

WHOIS lookup made at 17:38:12 07-Aug-2012

-- 
This WHOIS information is provided for free by Nominet UK the central registry
for .uk domain names. This information and the .uk WHOIS are:

Copyright Nominet UK 1996 - 2012.

You may not access the .uk WHOIS or use any data from it except as permitted
by the terms of use available in full at http://www.nominet.org.uk/whois, which
includes restrictions on: (A) use of the data for advertising, or its
repackaging, recompilation, redistribution or reuse (B) obscuring, removing 
or hiding any or all of this notice and (C) exceeding query rate or volume   
limits. The data is provided on an 'as-is' basis and may lag behind the
register. Access may be withdrawn or restricted at any time. 

2 ответа2

1
for DOMAIN in newcastle.co.uk  guinness.co.uk  ;do
    echo "";
    echo $DOMAIN;
    whois $DOMAIN | awk -F: '/Registrar:/ && $0 != ""  { getline; REGISTRAR=$0 } END { print REGISTRAR }';
    whois $DOMAIN | awk -F: '/Expiry date:/ && $0 != ""  { EXPDATE=$0 } END { print EXPDATE }';
done

Выход:

newcastle.co.uk
Корпорация Сервисная Компания (Великобритания) Лимитед [Tag = CSC-CORP-DOMAINS]
Срок годности: 30 марта 2014 г.

guinness.co.uk
Мельбурн IT / Интернет-имена по всему миру [Tag = MELBOURNE-IT]
Срок годности: 06-янв-2014

1

В следующих примерах извлекаются оба элемента с использованием пользовательских разделителей записей. Они обе обрабатывают несколько строк в Registrar: запись.


awk -vRS="(\n *Registrar:\n)|(\n +Expiry date: +)" \
'NR==2{ $0=gensub( /(^|\n) +/, "\\1","g" ) # gensub requires GNU awk
        match($0,/\n\n/); print substr($0,1,RSTART-1) } 
 NR==3{ match($0,/\n/);   print substr($0,1,RSTART-1) }'

или же

awk -vRS="\n\n" '
 $1 == "Registrar:" { 
    gsub( /(^|\n) +/, "\n" )   # remove leading spaces
    sub( /Registrar:\n/, "" )  # remove "Registrar:" header line
    print 
 } 
 $1" "$2 == "Relevant dates:" { 
    match( $0, /Expiry date: +/ ); beg=RSTART+RLENGTH
    match( $0, /Expiry date: +[^\n]+/ )
    print substr( $0, beg , RSTART+RLENGTH-beg ) 
 }' 

выход

Heart Internet Ltd t/a eXtend [Tag = EXTEND]
01-Mar-2014

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .