我正在尝试使用脚本运行两个linux dns命令WHOIS和DIG。
到目前为止,我的脚本如下:
#!/bin/bash
for i in $1
do
reg1=`whois $i`
echo "*********WHOIS Results for $i*********"
echo -e "[$i]\n$reg1"
for j in 4.2.2.3
do
reg=`dig any @$j $i `
echo -e "[$j]$reg"
done
done
现在我正在寻找一个替换'4.2.2.3'的命令,我可以用它来搜索上一个命令的输出并返回该行的一部分:'Name Server:A.DNS.HOSTWAY.NET'。 'Name Server:'是我要搜索的内容,它应该返回以下文本,停在该行的末尾。
答案 0 :(得分:0)
要回答您的问题,您可以尝试以下方式:
[ ~]$ echo "Name Server: A.DNS.HOSTWAY.NET"|egrep -o "Name Server:\ *[A-Za-z\.]*"|awk -F ": *" '{print $2}'
A.DNS.HOSTWAY.NET
但我不确定我是否了解所有内容,包括在单个值上使用for
循环的事实。
答案 1 :(得分:0)
如果我正在解释你想要做的事情,你应该可以这样做:
#!/bin/bash
for i in $1
do
reg1=`whois $i`
echo "*********WHOIS Results for $i*********"
echo -e "[$i]\n$reg1"
grep 'Name Server' <<< "$reg1" | awk '{print $3}' | while read j
do
echo -e "[$j]$(dig any @$j $i)"
done
done