Linux:複数の演算子を使用してテキストリストを作成する[閉じる]

Linux:複数の演算子を使用してテキストリストを作成する[閉じる]

私は次のリストを作成したいと思います。

7785237_770x770_de3b540dc13ed50023d17854513b40aa07e50a6a
732308_770x770_ec5c344c0114011a5306b31142ff9b001813f6d6
7430796_800x800_ec0f2e614e2dc460fca7e626d83073c827dc9130
7431018_800x800_7caa40b85c21485c64f2ad509a0d9cc1ed3ba526

説明すると、最初の「_」の前の最初のブロックは0から9500000の数字です。 2番目のブロックは「770x770」と「800x800」の2つの変数の間で異なり、
最後のブロックは40文字の長い16進ブロックです。

だから私がしたいのは、これらの可能なすべての組み合わせを作成し、それらを1行にまとめることです。

どうすればいいですか? BASHでこれを行うことができるのか、Perl /類似プログラムで実行する必要があるのか​​わかりません。

ベストアンサー1

私はそれが動作する前にあなたが古い場合に備えてbashがこれらの量を処理できないと思います。

Python繰り返しツールすべての組み合わせを作成して組み立てるのに役立ちます。

PerlではなくPythonを使用することをお勧めします。なぜなら、これはテキスト操作よりも数学的操作に近いからです。

#!/usr/bin/env python

from itertools import combinations_with_replacement

for x in combinations_with_replacement('0123456789abcdef', 40):
    h = ''.join(x)
    for y in xrange(9500001):
        for r in ("770x770", "800x800"):
            print "{0}_{1}_{2}".format(y, r, h)

もちろん、PythonはCよりも速度がはるかに遅いので、最高のパフォーマンスを期待しないでください。一方、5行のコードだけでCで同じ結果が得られるとは思わないでください。

おすすめ記事