So teilen Sie eine Ausgabezeichenfolge in Bash an einer neuen Zeile auf

So teilen Sie eine Ausgabezeichenfolge in Bash an einer neuen Zeile auf

Ich schreibe einen kleinen Befehl, der nslookup verwendet, um nur die IP-Adresse eines Domänennamens abzurufen.

Folgendes habe ich getan:

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

Ausgabe:

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

Jetzt möchte ich aus dem obigen nur noch die zweite Zeile erhalten, d.h.45.33.32.156. Ich bin relativ neu bei Ubuntu und Linux im Allgemeinen, also helfen Sie mir bitte, auch wenn es vielleicht ganz einfach ist (ich habe wirklich Mühe!!). Vielen Dank im Voraus. ;-)

Antwort1

Um die zweite Zeile zu erhalten, verwenden Sie 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

Antwort2

Da Sie awk bereits zum Abrufen der zweiten Spalte verwenden, können Sie es auch anweisen, nur den zweiten Datensatz zu verarbeiten:

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

verwandte Informationen