分割方法、各分割、gzipファイルにテキストを追加する

分割方法、各分割、gzipファイルにテキストを追加する

私は大容量ファイルが欲しいと思いますdata.txt

  1. 256mに分かれている
  2. data.txt各分割ファイルに最初の3行を追加します。
  3. 圧縮する

data.txt良い:

aaa
bbb
ccc
<data>
<data>
<data>
...
<few million rows>
<data>

最終結果は、各分割ファイルが同じ最初の3行を持つことです。

aaa
bbb
ccc

私が知っている最も効率的な方法はメモリにあります。ステップ2を終了すると、次のようになります。

split --bytes=256M -d -a 3 --filter='gzip > $FILE.gz' data.txt split/data_

しかし、手順2では、ファイルをディスクに書き込むためにgzipを別のコマンドに分割せずにこれを行う方法がわかりません。

ベストアンサー1

フィルタをより複雑にすることができます。

split -C 256M -d -a 3 --filter '(head -n 3 data.txt; cat) | gzip > $FILE.gz' <(tail -n +4 data.txt) data_

これにより、最初の3行がスキップされ、data.txt各分割に再導入されます。

-C代わりに、--bytes分割ファイルにレコード全体が含まれていることを確認するために使用します。

おすすめ記事