Вот хороший, использует grep только как вторичную команду:
ip addr show eth0 | grep -oP 'inet \ K \ S [0-9.] +'
Я не понимаю, почему вы должны использовать больше команд, чем необходимо