[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Почему sed выдает не только группу но и другой текст ?



26.12.2013 17:26, Alexander Galanin пишет:
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.

Спасибо. Добавлю без слэша и пробела! А то вдруг завтра пров решит перейти на ethernet.

--
--
Faithfully yours,

Vladimir Skubriev


Reply to: