txtファイルのすべての可能な組み合わせを取得するためにbashスクリプトが欲しい

txtファイルのすべての可能な組み合わせを取得するためにbashスクリプトが欲しい

次の文字、数字、特殊文字があります。

012345789
!@#$%
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz

上記のすべての8桁の組み合わせを含むtxtファイルを生成するbashスクリプトが必要です。たとえば、次のようになります。

aK@05B!8など。私にスクリプトをお勧めできますか?

ベストアンサー1

下の図は、質問に答える方法を示しています。

s='1 2 3 4 5'    # Space separated alphabet of characters

for a in $s
do
    for b in $s
    do
        for c in $s
        do
            printf "%s%s%s\n" "$a" "$b" "$c"
        done
    done
done

このコードのアルファベットは、66文字(数字の範囲では省略)に比べて5文字にすぎず、68文字の代わりに3文字のみを使用します。 125個の出力を生成します。

111
112
113
114
115
121
122
...
555

アルファベットを使用しますが、まだ3つのイテレータのみを使用すると、287496の組み合わせが生成されます。反復子の数の累乗で重複したアルファベット文字数を数えることで、組み合わせの数を決定できます。たとえば、5 3 = 125と66 3 = 287496の場合、目標要件は66 8 ≒3.6x10 14の組み合わせになります。

おすすめ記事