Vitaly |
|
Темы:
12
Сообщения:
36
Участник с: 18 февраля 2018
|
Здравствуйте! Я настроил l2tp\ipsec через strongswan, все работает, ppp поднимается Мне нужно из такого вывода команды (ip r) получить адрес link src у ppp0 (в данном случае 172.16.253.195) т.к. при каждом подключении он разный, для того, чтобы добавить через него маршруты в подсеть за vpn шлюзомЭто делается каким-то магическим образом через sed, но правда, когда я вижу регекспы у меня глаза кровят)) Помогите пожалуйста составить нужный регексп :) Ну или может есть более красивый способ это сделать? |
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
Vitaly, навскидку ... имеем файл test cat test вытаскиваем из него нужноеgrep ppp0 test | sed 's|.*src||'
Ошибки не исчезают с опытом - они просто умнеют
|
Vitaly |
|
Темы:
12
Сообщения:
36
Участник с: 18 февраля 2018
|
vasekВот так работает без промежуточного файла, спасибо!
|
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
Vitalyпросто предложил как способ использования sed, хотя более понятно использование awk ... а уж как использовать глобально, это уже другой вопрос PS - один нюанс - правильнее прописывать link src вместо src - может встретиться сочетание src - хотя в данном случае это исключено.
Ошибки не исчезают с опытом - они просто умнеют
|
Nebulosa |
|
Темы:
10
Сообщения:
830
Участник с: 05 марта 2009
|
Vitaly Вдогонку.. sed всё же для замены части строк, а для просто вывода части строки, я использую конструкции попроще, когда вывод формализован - есть структура, например: или Первое по расходу памяти и по универсальности будет предпочтительнеe.
|
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
Nebulosased - это потоковый редектор (согласно DOC - Sed is a stream editor) и, следовательно, возможностей у него на порядок больше. Но, конечно, использование sed для большинства затруднительно и требует его основательного изучения ... и в большинстве случаев проще использовать awk вместо sed , о чем и писал выше, но нужно помнить о нюансах, точнее, быть уверенным, что формат обрабатываемой строки не меняется. Используя же sed, можно вытащить любое заданное слово не опасаясь, что формат строки может измениться.
Ошибки не исчезают с опытом - они просто умнеют
|
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
vasekДа ладно... gawk - уже целый язык для обработки текста, а базовый sed - ничего сложного, тем более, что примеров в сети на любой случай хватает. Кстати, давно удивляет, что прописывают именно симлинк (awk) вместо того, чтобы напрямую использовать gawk: ну типо для совместимости, да...
|
Nebulosa |
|
Темы:
10
Сообщения:
830
Участник с: 05 марта 2009
|
vasekСпору нет, он очень мощный, но если исходить принципа KISS - если тебе просто нужна часть определённой строки, то надо просто выбрать нужную и порезать её, а не преобразовывать её удалением лишнего. Вот если тебе надо изменить часть строки в файле - вот тут Sed предстаёт во всей красе: Что-то элегантней и проще врядли придумать..Для каждой задачи свой инструмент, вот и всё. |
alien175 |
|
Темы:
20
Сообщения:
169
Участник с: 27 декабря 2010
|
|