リスト内の各ドメインに対してWhoisルックアップを実行するスクリプトがあり、作成日と有効期限を抽出する必要があります。最初の部分がありますが、有効期限もわからないようです。whois
ドメインを2回操作したくありません。
while IFS="," read domain rdate; do # Domain name and received date
cdate=( $(whois $domain | grep -m 1 -i Creation| awk -F" " '{print $3}') )
# Harvest creation date from whois record for each domain
# expdate=??????
printf "$domain,$cdate,$expdate \n"
done < "temp1.txt" 2> /dev/null # Sets the file to read in from and suppress error messages
私は成功しなかったので、以下のようにwhoisを「whod」に設定しようとしました。
whod=$(whois $domain|awk '{print $0}')
expdate=( $(echo $whod |grep -m 1 -i 'Expiration Date' | awk -F" " '{print $3}') )
echo $expdate
ベストアンサー1
まず、これは何の意味もありませんawk '{print $0}'
。ただ各入力ラインを印刷します。代わりに使用してくださいwhod=$(whois "$domain")
。とにかく、最大の問題は変数を引用しないことです。これはあらゆる種類の問題を引き起こしますecho $whod
。awk '{print $3}'
Whois Server Version 2.0 Domain names in the .com and .net [ ... ]
3番目の言葉Version
はおそらくあなたが得るでしょう。また、array(expdate=( $( echo $whod ... ) )
)を使用していますが、なぜそうなのかわかりません。複数の一致がありますか?とにかく、スクリプトの作業バージョンは次のとおりです。
while IFS="," read domain rdate; do
whod="$(whois "$domain")"
cdate="$(echo "$whod" | grep -m 1 -i Creation| awk -F" " '{print $3}')"
expdate="$(echo "$whod" |grep -m 1 -i 'Expiration Date' | awk -F" " '{print $3}')"
printf "$domain,$cdate,$expdate \n"
done < "temp1.txt"