генерация словаря
Модераторы: /dev/random, Модераторы разделов
генерация словаря
Всем привет. Как с помощью подручных средств, которые есть в каждом дистро сгенерировать словарик. Есть часть слова IX1VPV(7,8,9)XXXXXX. Нужно сгенерировать словарик типа
IX1VPV7[000000...999999]
IX1VPV8[000000...999999]
IX1VPV9[000000...999999]
Хотелось бы узнать КАК это делается, ну или куда копать при поиске.
Спасибо
IX1VPV7[000000...999999]
IX1VPV8[000000...999999]
IX1VPV9[000000...999999]
Хотелось бы узнать КАК это делается, ну или куда копать при поиске.
Спасибо
Убей в себе Windows!!!
Desktop: AMD Sempron 1.6 Ghz, 512 Mb Ram
EEEPc 701, Backtrack 3
Desktop: AMD Sempron 1.6 Ghz, 512 Mb Ram
EEEPc 701, Backtrack 3
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: генерация словаря
biomass писал(а): ↑24.11.2009 16:00Всем привет. Как с помощью подручных средств, которые есть в каждом дистро сгенерировать словарик. Есть часть слова IX1VPV(7,8,9)XXXXXX. Нужно сгенерировать словарик типа
IX1VPV7[000000...999999]
IX1VPV8[000000...999999]
IX1VPV9[000000...999999]
Хотелось бы узнать КАК это делается, ну или куда копать при поиске.
Спасибо
Ничего не понял. "IX1VPV(7,8,9)XXXXXX" - это прямо так и есть? Со скобками? А иксы - это число? А "IX1VPV7[000000...999999]" - то, что в квадратных скобках - это дословно писать, вместе с многоточием? Или туда скопировать то, что обозначено иксами? И нужны ли сами скобки?
Re: генерация словаря
Иксы это и есть числа. Квадратные скобки означают диапазон значений. Т.е. будет примерно так
IX1VPV7000000
IX1VPV7000001
IX1VPV7000002
.........................
IX1VPV7000010
IX1VPV7000011
.........................
IX1VPV7999999
IX1VPV7000000
IX1VPV7000001
IX1VPV7000002
.........................
IX1VPV7000010
IX1VPV7000011
.........................
IX1VPV7999999
Убей в себе Windows!!!
Desktop: AMD Sempron 1.6 Ghz, 512 Mb Ram
EEEPc 701, Backtrack 3
Desktop: AMD Sempron 1.6 Ghz, 512 Mb Ram
EEEPc 701, Backtrack 3
Re: генерация словаря
Думаю, на С это сделать проще, т.к. конструкция типа
приведет к подвисанию компьютера работает долго.
(попробовал. у меня и после ^C до сих пор подвисает - оперативка еще не освободилась...)
Конструкция
памяти много не ест, но работать будет тоже долго.
На С вам можно использовать библиотеку regexp и метод, похожий на используемый для генерирования временных файлов.
Код: Выделить всё
for A in $(seq 0 999999)
do
echo tralala$A
done
приведет к подвисанию компьютера работает долго.
(попробовал. у меня и после ^C до сих пор подвисает - оперативка еще не освободилась...)
Конструкция
Код: Выделить всё
A=-1
while [ $A -lt 999999 ];
do
$(( $A + 1 ))
echo tralala$A
done
памяти много не ест, но работать будет тоже долго.
На С вам можно использовать библиотеку regexp и метод, похожий на используемый для генерирования временных файлов.
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: генерация словаря
Имеется в виду примерно это?
seq -f %06.f 0 999999 | sed 's/.*/IX1VPV7&/'
seq -f %06.f 0 999999 | sed 's/.*/IX1VPV7&/'
Re: генерация словаря
Или так
Код: Выделить всё
seq -f IX1VPV7%06.f 0 999999
А можно как-то передать типа:
Код: Выделить всё
seq 8 9 | seq -f IX1VPV[тут_результат_первого_ seq]%06.f 0 999999
?
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: генерация словаря
Voral писал(а): ↑24.11.2009 16:55Код: Выделить всё
seq 8 9 | seq -f IX1VPV[тут_результат_первого_ seq]%06.f 0 999999
Код: Выделить всё
seq 8 9 | xargs -i seq -f IX1VPV{}%06.f 0 999999
Спасибо сказали:
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: генерация словаря
Re: генерация словаря
Спасибо. Скрипт seq -f %06.f 0 999999 | sed 's/.*/IX1VPV7&/' прекрасно работает. Только не могли бы вы раскрыть суть следующего "-f %06f". В мане -f - формат выводимого числа. Выводит в фомате команды printf, в мане которой не нашел значение этого флага и его параметров.
Убей в себе Windows!!!
Desktop: AMD Sempron 1.6 Ghz, 512 Mb Ram
EEEPc 701, Backtrack 3
Desktop: AMD Sempron 1.6 Ghz, 512 Mb Ram
EEEPc 701, Backtrack 3
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: генерация словаря
biomass писал(а): ↑26.11.2009 02:32Спасибо. Скрипт seq -f %06.f 0 999999 | sed 's/.*/IX1VPV7&/' прекрасно работает. Только не могли бы вы раскрыть суть следующего "-f %06f". В мане -f - формат выводимого числа. Выводит в фомате команды printf, в мане которой не нашел значение этого флага и его параметров.
Не "%06f", а "%06.f". %f - число с плавающей точкой (единственный формат, который понимает seq). Для него задаётся ширина в формате "x", "x." или "x.y" (если y опущен, а точка - нет, подразумевается y=0; если опущено и то, и другое - 6). Здесь x - минимальная ширина поля в символах (если x начинается с нуля, то до требуемой ширины число дополняется нулями, иначе - пробелами), а y - число знаков после запятой. Т.е., в данном случае это означает, что дробные знаки не выводятся вообще, и число дополняется слева нулями до 6 знаков.
Но вообще, как правильно заметил t.t, здесь проще было использовать параметр -w, который автоматически дополняет число нулями. Строку формата я использовал исключительно по сишной привычке.
Re: генерация словаря
Позволю себе немного раскрыть: дополняет нулями до количества цифр заданного максимума./dev/random писал(а): ↑26.11.2009 02:56Но вообще, как правильно заметил t.t, здесь проще было использовать параметр -w, который автоматически дополняет число нулями.
Код: Выделить всё
$ echo $(seq -w 10)
01 02 03 04 05 06 07 08 09 10
$ echo $(seq -w 10000 | head -10)
00001 00002 00003 00004 00005 00006 00007 00008 00009 00010
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж