bash: скрипт распределения ip на чёт/нечет (нужен совет)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
Аватара пользователя
G@riK
Сообщения: 54
Контактная информация:

bash: скрипт распределения ip на чёт/нечет

Сообщение G@riK »

есть список ip из разных подсетей (192.168.2, 192.168.3 и т.д. и 10.2, 10.3, и т.д. до 10.6) в файле ips.txt

задача такова: нужно распределить эти айпи по чёт/нечет в 2 файла...

есть 2 скрипта, но первый из них теряет часть ip, а второй выполняется очень долго и тоже теряет айпи... ниже тексты этих скриптов

1:

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

cat ./ip_not_blocked.txt | sed -e '/192\.168\.[3,5,7,9,11]/d' | sed -e '/10\.[3,4,5,6]/d' > router2_test;
cat ./ip_not_blocked.txt | sed -e '/192\.168\.[2,4,6,8,10]/d' | sed -e '/10\.2/d' > router1_test;


2:

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

while read ip
    do

      echo $ip | grep "192.168.2" >> router2
        echo $ip | grep "192.168.4" >> router2
        echo $ip | grep "192.168.6" >> router2
        echo $ip | grep "192.168.8" >> router2
        echo $ip | grep "192.168.10" >> router2
        echo $ip | grep "10.2.201" >> router2
        echo $ip | grep "10.2.202" >> router2

        echo $ip | grep "192.168.3" >> router1
        echo $ip | grep "192.168.5" >> router1
        echo $ip | grep "192.168.7" >> router1
        echo $ip | grep "192.168.9" >> router1
        echo $ip | grep "192.168.11" >> router1
        echo $ip | grep "10.3.120" >> router1
        echo $ip | grep "10.3.13" >> router1
        echo $ip | grep "10.4.31" >> router1
        echo $ip | grep "10.4.32" >> router1
        echo $ip | grep "10.4.33" >> router1
        echo $ip | grep "10.4.110" >> router1
        echo $ip | grep "10.5.221" >> router1
        echo $ip | grep "10.5.222" >> router1
        echo $ip | grep "10.5.33" >> router1
        echo $ip | grep "10.6.11" >> router1
        echo $ip | grep "10.6.12" >> router1
        echo $ip | grep "10.6.20" >> router1
        echo $ip | grep "10.6.30" >> router1
        echo $ip | grep "10.6.40" >> router1
        echo $ip | grep "10.6.50" >> router1
        echo $ip | grep "10.6.61" >> router1
        echo $ip | grep "10.6.62" >> router1
        echo $ip | grep "10.6.63" >> router1
        echo $ip | grep "10.6.64" >> router1
        echo $ip | grep "10.6.65" >> router1

done < /root/garik/block/ip_not_blocked.txt


жду помощи...
Ибу ибуди - ху_ида_о муди - [Шаг за шагом можно достигнуть цели (кит.)]
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: bash: скрипт распределения ip на чёт/нечет

Сообщение sash-kan »

(G@riK @ Oct 10 2006, в 12:36) писал(а):1:

а так не лучше?
cat ./ip_not_blocked.txt | sed -e '/^192\.168\.\([3579]\|11\)\./d' | sed -e '/^10\.[3456]/d' > router2_test;
cat ./ip_not_blocked.txt | sed -e '/^192\.168\.\([2468]\|10\)\./d' | sed -e '/^10\.2/d' > router1_test;
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Ответить