如何在 Bash 中的新行处拆分输出字符串

如何在 Bash 中的新行处拆分输出字符串

我正在编写一个小命令,它使用 nslookup 来获取域名的 IP 地址。

以下是我所做的:

nslookup scanme.nmap.org | grep -i "Address"  | awk '{print $2}' 

输出:

127.0.0.53#53
45.33.32.156
2600:3c01::f03c:91ff:fe18:bb2f

现在从上面我只想得到第二行,即45.33.32.156。我对 Ubuntu 和 Linux 总体来说还比较陌生,所以请帮助我,即使它可能真的很简单(我真的很挣扎!!)。提前谢谢。;-)

答案1

要获取第二行,请使用sed -n '2 p'

$ printf "127.0.0.53#53\n45.33.32.156\n2600:3c01::f03c:91ff:fe18:bb2f" | sed -n '2 p'
45.33.32.156

答案2

由于您已经使用 awk 来获取第二列,因此您也可以告诉它仅处理第二条记录:

$ nslookup scanme.nmap.org | grep -i "Address"  | awk 'NR==2 {print $2}'
45.33.32.156

相关内容