Генератор списков слов в Bash - PullRequest
1 голос
/ 25 марта 2020

Я пытаюсь создать список слов, состоящий из того же пароля, за которым следует 4-значный git цифра c. Булавка проходит через каждую возможную комбинацию из 10 000 вариантов. Желаемый вывод должен быть таким:

 UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ 1111
 UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ 1112
 UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ 1113

и т. Д.

Я создал сценарий оболочки, который почти получил это, но awk, похоже, не нравится, когда переменная передается через и, кажется, просто распечатывает каждую комбинацию при вызове. Это сценарий оболочки:

#!/bin/bash
# Creates 10,000 lines of the bandit24pass and every possible combination
# Of 4 digits pin

USER="UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ"

PASS=$( echo {1,2,3,4,5,6,7,8,9}{1,2,3,4,5,6,7,8,9}{1,2,3,4,5,6,7,8,9}{1,2,3,4,5,6,7,8,9} | awk '{print $I}' )

for I in {1..10000};
do
        echo "$USER $PASS"
done

Хотя $I будет преобразовано в $1 для первого запуска l oop и будет увеличиваться в течение каждой итерации. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

3 голосов
/ 25 марта 2020

Я думаю, что $ I будет переводиться в 1 для первого запуска l oop и увеличиваться в течение каждой итерации.

Нет, подстановки команд расширяются один раз; например, когда вы делаете foo=$(echo), foo является пустой строкой, а не ссылкой на echo.

Эта целая задача может быть достигнута одним вызовом printf btw.

printf 'UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ %s\n' {1111..9999}
1 голос
/ 25 марта 2020

тыр это

$echo $user
UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ
$for i in {1000..9999}; do echo $user $i; done;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...