Это самый короткий способ, который я смог найти:
ip -f inet addr show $1 | grep -Po 'inet \K[\d.]+'
Заменить $1 на ваш сетевой интерфейс.
ip -f inet сообщает ip чтобы возвращать значения для семейства inet (ipv4).
grep -Po сообщает grep, чтобы перевести следующее значение в perl-regex и распечатать только соответствующие значения.
regex \K[\d.]+ говорит: «Отбросьте все до этой точки (\ K) и сопоставьте столько числовых значений, сколько следует за точкой в строке». Следовательно, это будет соответствовать только IP-адресу и игнорировать все после него, включая маску подсети shortform \ XX.