同様の質問hereを慎重に引用していますが、列1に異なる値があるので、第1列の値に基づいて行数が設定されたファイルに大きなファイルを分割します
A.B|100|20
A.B|101|20
A.X|101|30
A.X|1000|20
B.Y|1|1
B.Y|1|2
私はそれをxファイルに分割して、各ファイルに最大5行を含むようにしたいと考えています。例では、私は2つのファイルたい:
A.B|100|20
A.B|101|20
A.X|101|30
A.X|1000|20
と
B.Y|1|1
B.Y|1|2
のawk -Fを\ | '{print> $ 1}' file1
この例では、2段階で簡単に目標に到達できました。私の実際のファイルでは、最初の列に約200Gigの大きなファイルを1千万の一意の値で分割したいと考えています。私は各ファイルに約1,000,000行(つまり柔軟な閾値)を持たせたいと思います。私は数百万のファイルを生成する余裕がないので、2ステップで作成することは実現不可能です。何か案が?ダブルで
まあ、1000万のユニークな "キー"と最大5行のファイルでは、少なくとも200万ファイル。たぶん、何をする必要があるのか私たちを老後にしたら、どうやってやるべきかを助けるかもしれません。 –
あなたは、最大5行*を含む*ファイルを書きましたが、frst出力には4行が含まれているかどうかは不明です。そうすれば、何百万ものファイルを生成する余裕はありませんが、大きなファイルを同時に分割したいと考えています。矛盾する音 – RomanPerekhrest
混乱して申し訳ありません。私は再び私の質問を編集しました。 – Sara