Bash 在同一行上显示IP和ns[1,2].*的脚本
我在一个名为“IPs”的文件中有我想要的所有IPBash 在同一行上显示IP和ns[1,2].*的脚本,bash,for-loop,dig,Bash,For Loop,Dig,我在一个名为“IPs”的文件中有我想要的所有IPdig+trace-x 我只想查看IP的ns1(和/或)ns2记录,并将IP和ns1或ns2记录输出在同一行上,如下所示: 1 - $IP - $NS 2 - $IP - $NS etc. 现在,我只有一个脚本,我称之为“digdugg”,看起来像这样 for i in `cat ips` do dig +trace -x $i | tail -n7 done 然后通过运行:bash-xdigdugh 但是,我真正需要的是一行上的IP和ns记录
dig+trace-x
我只想查看IP的ns1(和/或)ns2记录,并将IP和ns1或ns2记录输出在同一行上,如下所示:
1 - $IP - $NS
2 - $IP - $NS
etc.
现在,我只有一个脚本,我称之为“digdugg”,看起来像这样
for i in `cat ips`
do
dig +trace -x $i | tail -n7
done
然后通过运行:bash-xdigdugh
但是,我真正需要的是一行上的IP和ns记录,然后是列表中的下一个IP和下一行上的ns记录。然后是下一个等等
非常感谢您的帮助 也许是这样的
for ip in `cat ips`; do
ns=`dig +trace -x $ip | tail -n7 | awk '/NS/ {print $NF}'`
echo "$ip - $ns" | tr '\n' ' '
echo ""
done
也许是这样的
for ip in `cat ips`; do
ns=`dig +trace -x $ip | tail -n7 | awk '/NS/ {print $NF}'`
echo "$ip - $ns" | tr '\n' ' '
echo ""
done
bash 4中的另一个解决方案:
while read ip; do
while read ns; do
echo -e "$ip\t$ns";
done < <(dig +trace -x $ip | grep -i "ns[12]")
done < ips
希望这将有助于bash 4中的另一个解决方案:
while read ip; do
while read ns; do
echo -e "$ip\t$ns";
done < <(dig +trace -x $ip | grep -i "ns[12]")
done < ips
希望这会有所帮助您能给出一个具体的输出示例吗?比如说,对于ip 8.8.8.8,你想要“1-8.8.8-ns1.level3.net”等等?是的,我想读一下:1-$ip-$nsCan你能给出一个你想要的输出的具体例子吗?比如说,对于IP8.8.8.8,你想要“1-8.8.8-ns1.level3.net”等等?是的,我希望它是:1-$ip-$n这个解决方案很好,但它在一行上重复所有输出,而不是在单独的行上重复输出。它需要在每条线路上有一个不同的IP,下降。啊,当然。您需要在每行之后打印一个换行符。修正了。实际上我是想写
$NF
。愚蠢的习惯…:(此解决方案非常有效,但它在一行上重复所有输出,而不是在单独的行上重复输出。每行上需要一个不同的IP,降序。啊,当然。每行之后需要打印一个换行。已修复。实际上我是想写$NF
。愚蠢的习惯…(库尔:)请给我加个名字;)库尔:)请给我加个名声;)