grep
pode não ser a melhor opção aqui, embora com um PCRE habilitado grep
e -o
um possa capturar os endereços IP com uma correspondência lookbehind de largura zero para localizar inet
e depois corresponder ao IP seguinte isso.
ip addr | grep -Po '(?<=inet )[^/]+'
Para o problema de várias linhas de "get inet addr de dispositivos que estão ativos", algo como
ip link | awk -F: '/state UP/{print $2}' \
| while read updev; do \
ip addr show $updev | grep -Po '(?<=inet )[^/]+'; done
pode ser mais adequado.