Тогда уж
ip a show dev br0 |  sed -rn 's/.*inet ([^ /]*).*/\1/p'

2013/12/26 Alexander Galanin <a...@galanin.nnov.ru>

> On Thu, 26 Dec 2013 15:39:56 +0400
> Vladimir Skubriev <skubr...@cvisionlab.com> wrote:
>
> > Помогите с sed. Пожалуйста.
> >
> > #ip a | grep ppp50
> > 6: ppp50: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc
> > pfifo_fast state UNKNOWN qlen 3
> >      inet 84.51.23.2 peer 80.68.8.17/32 scope global ppp50
>
> Во-первых, ip a show dev ppp50, чтобы обойтись без грепа.
>
> > #ip a | grep ppp50 | sed -r 's/(.*inet )(.*)( peer.*)/\2/'
> > 6: ppp50: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc
> > pfifo_fast state UNKNOWN qlen 3
> > 84.51.23.2
> >
> > Нужно получить ip адрес по интерфейсу.
>
> Во-вторых, указать более точный regexp. Хватит условия "строка без
> пробелов и слешей": [^ /]*, т.е. в итоге получится:
>
> ip a show dev ppp50 | grep -E '\<inet\>' | sed -r 's/.*inet ([^ /]*).*/\1/'
>
> Грепается строка с "inet", чтобы отфильтровать всё постороннее, в т.ч.
> inet6.
>
> Но надо не забыть обработать случай, когда на интерфейсе несколько адресов.
>
> --
> Alexander Galanin
>
>
> --
> To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmas...@lists.debian.org
> Archive:
> http://lists.debian.org/20131226161044.9256aa493ce92a75bd741...@galanin.nnov.ru
>
>

Ответить