The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Подскажите по замене строки с помощью sed"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Подскажите по замене строки с помощью sed"  +/
Сообщение от danswano (?), 04-Июл-24, 14:44 
Всем привет!
Когда я пытаюсь в куче конфигов заменить часть IP-адреса, то пишу команду
sed -i '/s/192.168.0/10.55.200/g'
Проблема в том, что в конфиге dhcpd есть настройки отдачи таблицы маршрутизации вида
24,172,21,0,192,168,0,254
Такие строки в результате выполнения sed заменяются на
24,172,21,0,10.55.200,254
Вопрос: как правильно написать выражение для sed, чтобы он корректно обработал эти строки или просто пропустил их? Запятая в качестве разделителя встречается только в конфиге dhcpd, если я правильно помню...
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Подскажите по замене строки с помощью sed"  +/
Сообщение от pavel_simple. (?), 04-Июл-24, 14:53 
>[оверквотинг удален]
> Когда я пытаюсь в куче конфигов заменить часть IP-адреса, то пишу команду
> sed -i '/s/192.168.0/10.55.200/g'
> Проблема в том, что в конфиге dhcpd есть настройки отдачи таблицы маршрутизации
> вида
> 24,172,21,0,192,168,0,254
> Такие строки в результате выполнения sed заменяются на
> 24,172,21,0,10.55.200,254
> Вопрос: как правильно написать выражение для sed, чтобы он корректно обработал эти
> строки или просто пропустил их? Запятая в качестве разделителя встречается только
> в конфиге dhcpd, если я правильно помню...

man regex, экранируй точку, а то назаменяешь себе на голову

Ответить | Правка | Наверх | Cообщить модератору

2. "Подскажите по замене строки с помощью sed"  +/
Сообщение от Pahanivo пробегал (?), 04-Июл-24, 21:35 
> man regex, экранируй точку, а то назаменяешь себе на голову

man regex до просветления - точка метасимвол

Ответить | Правка | Наверх | Cообщить модератору

3. "Подскажите по замене строки с помощью sed"  +/
Сообщение от pavel_simple. (?), 05-Июл-24, 09:10 
>> man regex, экранируй точку, а то назаменяешь себе на голову
> man regex до просветления - точка метасимвол

echo 123,123,123 | sed 's/123.123.123/true/g'
true

Ответить | Правка | Наверх | Cообщить модератору

4. "Подскажите по замене строки с помощью sed"  +/
Сообщение от pavel_simple. (?), 05-Июл-24, 09:11 
>> man regex, экранируй точку, а то назаменяешь себе на голову
> man regex до просветления - точка метасимвол

echo 123,123,123 | sed 's/123\.123\.123/true/g'
123,123,123

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

5. "Подскажите по замене строки с помощью sed"  +/
Сообщение от anonymous (??), 05-Июл-24, 17:42 
>[оверквотинг удален]
> Когда я пытаюсь в куче конфигов заменить часть IP-адреса, то пишу команду
> sed -i '/s/192.168.0/10.55.200/g'
> Проблема в том, что в конфиге dhcpd есть настройки отдачи таблицы маршрутизации
> вида
> 24,172,21,0,192,168,0,254
> Такие строки в результате выполнения sed заменяются на
> 24,172,21,0,10.55.200,254
> Вопрос: как правильно написать выражение для sed, чтобы он корректно обработал эти
> строки или просто пропустил их? Запятая в качестве разделителя встречается только
> в конфиге dhcpd, если я правильно помню...

попробуй через логическое нет 192\.168\.0(?!\.254)
регулярки удобно тренить на regex101.com, а файлы править в vscode

Ответить | Правка | Наверх | Cообщить модератору

6. "Подскажите по замене строки с помощью sed"  +/
Сообщение от danswano (?), 08-Июл-24, 14:37 
Всем спасибо, экранирование точек помогло: /s/192\.168\.0/10\.55\.200/g
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру