0

こんにちは、誰かが私のコーディングを手伝ってくれるかどうか疑問に思っていました。理論的には、基本的なコマンドを使用して手動で行う方法を知っていますが、時間を節約してより効率的にするために、.sh スクリプトを使用して手動で行いたいと思います。大量のデータを使用します。

つまり、file_1.txt から file_10.txt までの名前の 10 個のファイルがあり、file_1 を一種の「トレーニング」ファイルとして扱いたいという考えです。したがって、file_2をfile_1に追加し、gzipを使用して圧縮して別の場所に保存すると、次のようになると思います...

cat file_1.txt file_2.txt | gzip -c > newfile.gz

しかし、次のステップは、file_3 を file_1 に、zip を新しいファイルとして、次に file_4 を file_1 に、などと同じことを行うことです (アイデアはわかります)。

file_1 で _2 から _10 まで実行したら、file_2 で同じことを行い、1、3、4、5、6、7、8、および 10 をそれぞれ個別に追加して、zip などにします。

したがって、最後に 90 個の個別の zip ファイルが必要です。(各ファイルを単独で圧縮したもの、つまり file_1.gz、file_2.gz などを、追加したファイルを比較するための参照として含めます)。

ヒントやヘルプをお寄せいただきありがとうございます。

Ps 提供されたコードが本当に効率的であるかどうかは関係ありません。たとえば、10 個の異なるループに次々と分割するなど、明確であれば問題ありません。私は結果を分析しているだけで、言うまでもなくコードを使用していません。ありがとう!

4

1 に答える 1

3

ループを使用する:

for i in {1..10} ; do
    for j in {1..10} ; do
        if (( i != j )) ; then
            cat file_$i.txt file_$j.txt | gzip -c > newfile-$i-$j.gz
        fi
    done
done

これにより、単独で gzip された各ファイルを除いて、 90 個の gzip ファイルが作成されます。追加の 10 個の gzip の作成は、読者の課題として残されています。

于 2013-03-04T00:27:33.560 に答える