我对linux和bash非常陌生。我在找一个ip地址的域名。当我使用nslookup时,我有很多这样的行
nslookup 204.228.150.3 输出
Server: 198.60.22.2
Address: 198.60.22.2#53
Non-authoritative answer:
3.150.228.204.in-addr.arpa name = www.computerhope.com.
Authoritative answers can be found from:
150.228.204.in-addr.arpa nameserver = ns.xmission.com.
150.228.204.in-addr.arpa nameserver = ns1.xmission.com.
150.228.204.in-addr.arpa nameserver = ns2.xmission.com.
ns.xmission.com Internet address = 166.70.254.2
ns1.xmission.com Internet address = 204.228.159.2
ns2.xmission.com Internet address = 207.135.133.2 我只想在第二行打印www.computerhope.com。我该怎么做?此外,我还尝试使用主机命令。看起来更干净。
206.153.126.75.in-addr.arpa domain name pointer www.cyberciti.biz.如何仅在使用主机命令时打印www.cyberciti.biz?PLease帮助
发布于 2016-10-30 20:49:44
$ host 75.126.153.202 |sed -e 's/.* //'
www.cyberciti.biz.发布于 2016-10-30 22:54:18
nslookup 204.228.150.3 | \
grep "in-addr.arpa" | \
cut -d '=' -f 2 | \
tr -d '[:blank:]'使用grep,您可以找到包含地址的行。使用剪切命令,您可以将行拆分为"=“号。使用tr,可以移除任何剩余的空格。如果地址未知,则该命令没有任何错误处理。
如果你能提供更多关于你想要达到的目标的信息,也许还会有其他的解决方案。:-)
发布于 2016-10-30 23:02:00
另一种方法是将host命令输送到awk
$ host 75.126.153.202 | awk '{print $NF}'
NF是一个内置的awk变量,它打印host命令输出的最后一列,在本例中是域名。
您还可以将nslookup管道输送到awk。
$ nslookup 75.126.153.202 | awk '$2 ~ /^name$/{print $NF}'
awk返回第二列中包含name的行的最后一列。
https://stackoverflow.com/questions/40333419
复制相似问题