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

さて、上記から2行目を取得したいのですが、45.33.32.156私は Ubuntu や Linux 全般について比較的初心者なので、たとえ本当に簡単なことであっても助けてください (本当に苦労しています!!)。よろしくお願いします。 ;-)

答え1

2行目を取得するには、次を使用します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 を使用して 2 番目の列を取得しているので、2 番目のレコードのみを処理するように指示することもできます。

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

関連情報