Генерация пин кодов

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Генерация пин кодов

Непрочитанное сообщение mlevel » 2010-07-16 16:20:41

Нужно сгенерировать уникальние пин коди, использую apg:

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

/usr/local/bin/apg -a1 -MN -m5 -x5 -n1
Но иногда первым символом(цифрой) генерируется 0, как можно отфильтровать такие пин коди?

Хостинговая компания 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/

Аватара пользователя
gloom
лейтенант
Сообщения: 738
Зарегистрирован: 2008-03-13 16:29:12
Откуда: UA

Re: Генерация пин кодов

Непрочитанное сообщение gloom » 2010-07-16 17:51:46

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

grep -vE "^0"

mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Re: Генерация пин кодов

Непрочитанное сообщение mlevel » 2010-07-17 13:15:41

Но ето в Perl скрипте.

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: Генерация пин кодов

Непрочитанное сообщение rmn » 2010-07-17 13:47:05

mlevel писал(а):Но ето в Perl скрипте.
а перл-скрипт такое не прожует?..

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

/usr/local/bin/apg -a1 -MN -m5 -x5 -n1 | grep -v ^0

mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Re: Генерация пин кодов

Непрочитанное сообщение mlevel » 2010-07-17 16:17:18

Прожует, но если первая цифра 0, то:

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

$code = system(/usr/local/bin/apg -a1 -MN -m5 -x5 -n1 | grep -v ^0);
выведет пустую строку....

Аватара пользователя
gloom
лейтенант
Сообщения: 738
Зарегистрирован: 2008-03-13 16:29:12
Откуда: UA

Re: Генерация пин кодов

Непрочитанное сообщение gloom » 2010-07-17 17:47:34

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

$code = system(/usr/local/bin/apg -a1 -MN -m5 -x5 -n1 | grep -vE "^0");
ось какая?
grep в бсд системах свой и он немного отличается от gnu grep который используется в лине

mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Re: Генерация пин кодов

Непрочитанное сообщение mlevel » 2010-07-17 19:06:23

FreeBSD. Но я не о том. Создавая нового пользователя, эму генерится ОДИН пин код этим скриптом, и если как раз они начинаеться с нуля,то выходит пустая строка, как при пустой строки опять сгенерить пин код? Думал сам apg поддерживает паттерны...

Аватара пользователя
gloom
лейтенант
Сообщения: 738
Зарегистрирован: 2008-03-13 16:29:12
Откуда: UA

Re: Генерация пин кодов

Непрочитанное сообщение gloom » 2010-07-18 6:45:15

сделайте проверку переменной и повторный вызов

mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Re: Генерация пин кодов

Непрочитанное сообщение mlevel » 2010-07-18 15:00:57

Ломаю голову... Цикл надо.

Burner
лейтенант
Сообщения: 693
Зарегистрирован: 2009-06-14 7:02:26

Re: Генерация пин кодов

Непрочитанное сообщение Burner » 2010-07-19 5:25:13

да вообще 0 исключите

FiL
ст. лейтенант
Сообщения: 1374
Зарегистрирован: 2010-02-05 0:21:40

Re: Генерация пин кодов

Непрочитанное сообщение FiL » 2010-07-19 7:35:55

mlevel писал(а):FreeBSD. Но я не о том. Создавая нового пользователя, эму генерится ОДИН пин код этим скриптом, и если как раз они начинаеться с нуля,то выходит пустая строка, как при пустой строки опять сгенерить пин код? Думал сам apg поддерживает паттерны...
генери 20 пинов, исключай те, что начинаются с нуля и бери первый. Вероятность, что все 20 будут с нуля начинаться мала. :)

mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Re: Генерация пин кодов

Непрочитанное сообщение mlevel » 2010-07-19 11:16:48

Хорошая идея.. :smile:

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Генерация пин кодов

Непрочитанное сообщение thefree » 2010-07-19 18:18:48

ужас, делайте через цыкал, не слушайте глупостей.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: Генерация пин кодов

Непрочитанное сообщение schizoid » 2010-07-26 11:46:47

или проверку переменной, если пустая - сгенерить снова...
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Burner
лейтенант
Сообщения: 693
Зарегистрирован: 2009-06-14 7:02:26

Re: Генерация пин кодов

Непрочитанное сообщение Burner » 2010-07-26 12:15:58

schizoid писал(а):или проверку переменной, если пустая - сгенерить снова...
а это не цикл?

mlevel
мл. сержант
Сообщения: 105
Зарегистрирован: 2009-09-28 15:31:39

Re: Генерация пин кодов

Непрочитанное сообщение mlevel » 2010-07-26 17:45:52

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

#!/usr/bin/perl

use strict;

my ($code, $new);

for (my $i = 1; $i <= 10; $i++) {
    $code = `/usr/local/bin/apg -a1 -MN -m5 -x5 -n1`;
    if(substr($code,0,1) ne 0) {
        $new = $code;
        last;
    }
}
print $new;