La maggior parte degli esempi qui riportati corrisponderà a 999.999.999.999 che tecnicamente non è un indirizzo IP valido.
Quanto segue corrisponderà solo a indirizzi IP validi (inclusi indirizzi di rete e broadcast).
grep -E -o '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' file.txt
Ometti -o se vuoi vedere l'intera riga corrispondente.
Potresti usare grep per estrarli.
grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' file.txt