On Thu, 26 Dec 2013 16:42:16 +0400
Vladimir Skubriev <vladimir@skubriev.ru> wrote:
1. Зачем \< и \> в grep'е почему не просто 'inet' ? или Вы просто только
--extended-regexp пользуетесь ?
Потому что «просто inet» пропустит inet6, что нас мало интересует.
Можно и пробел после слова поставить.
2. Я не знал, что можно .*inet без группы написать, точнее что не
обязательно все в группы объединять.
В группу объединяют, если хотят что-то с ней потом делать.
3. ( - группа начинается, [^ /]* - любое количество чего ?
Любых символов, кроме пробела и слеша. Это на случай адресов вида
192.168.1.22/24, которые будут в ethernet-сети.
Чем плох мой вариант (после вашего примера)
ip a show dev ppp50 | grep 'inet' | sed -r 's/.*inet (.*) peer.*/\1/'
Сломается на «inet 192.168.1.22/24 brd 192.168.1.255 scope global eth1».
Но это уже немного другой случай, так что если интересует только ppp, то
всё нормально.
Но как сказали выше, красивее будет sed с ключом -n.