sed. чё-то подтупливаю.

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

sed. чё-то подтупливаю.

Непрочитанное сообщение Alex Keda » 2007-10-20 0:32:35

написал скрипт:

Код: Выделить всё

#!/bin/sh

# скрипт по замене IP адресов

# задаём наборы для замены
set1="81.176.224.6/77.221.137.170"
set2="81.176.224.68/77.221.137.171"
set3="81.176.224.69/77.221.137.172"
set4="81.176.225.68/77.221.137.173"
set5="81.176.225.128/77.221.137.174"
set6="81.176.225.69/77.221.129.82"
set7="81.176.225.124/77.221.129.83"
set8="81.176.225.125/77.221.129.84"
set9="81.176.225.126/77.221.129.85"
set10="81.176.225.127/77.221.129.86"
set11="81.176.225.129/77.221.137.174"
set12="81.176.225.130/77.221.137.174"
set13="81.176.225.131/77.221.137.174"


# ищем все файлы в текущей директории и глубже,
/usr/bin/find . -type f -print |
{
        while read file_name
        do
        # заменяем в файле IP адреса
        for replace_string in $set1 $set2 $set3 \
                $set4 $set5 $set6 $set7 $set8   \
                $set9 $set10 $set11 $set12 $set13
                do
                # поехали по файлу
                /usr/bin/sed -i -e s/${replace_string}/g ${file_name}
                done
        done
}
всё хорошо, вот тока

Код: Выделить всё

set1="81.176.224.6/77.221.137.170"
set2="81.176.224.68/77.221.137.171"
первый набор совпадёт и с частью второго.
а значит заменит и на выходе будет непойми что....
как бы указать, что после - не цифра?
чё-то типа

Код: Выделить всё

81.176.224.6(!\d)
чтоли...
даже мысль сформулировать не могу :(((
Убей их всех! Бог потом рассортирует...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: sed. чё-то подтупливаю.

Непрочитанное сообщение Alex Keda » 2007-10-20 0:34:08

бля... от я тупой.
надо первый последним поставить.

Код: Выделить всё

        for replace_string in  $set2 $set3 \
                $set4 $set5 $set6 $set7 $set8   \
                $set9 $set10 $set11 $set12 $set13 $set1
должно прокатить.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: sed. чё-то подтупливаю.

Непрочитанное сообщение Alex Keda » 2007-10-20 0:34:37

пойду посплю чтоли.
а то щас запущу на свою голову :)
Убей их всех! Бог потом рассортирует...