GNU/Linux >> Linux の 問題 >  >> Linux

unzip された分割をディスクに保存せずに gzip されたログファイルを分割する

次のようなスクリプトで十分です。

#!/usr/bin/perl
use PerlIO::gzip;

$filename = 'out';
$limit = 500000;

$fileno = 1;
$line = 0;

while (<>) {
    if (!$fh || $line >= $limit) { 
        open $fh, '>:gzip', "$filename_$fileno"; 
        $fileno++;
        $line = 0; 
    }
    print $fh $_; $line++;
}

split --filter を使用できます マニュアルで説明されているオプションなど

zcat biglogfile.gz | split -l500000 --filter='gzip > $FILE.gz'

編集:--filter の場合は認識しません オプションが導入されましたが、コメントによると、core utils 8.4 では機能しません .


Linux
  1. 古いマッピングを解放せずにLinux mremap?

  2. Linux で物理ディスクの数を取得するには?

  3. ファイルシステムを破壊せずにハードドライブの内容をゼロにする

  1. RAID5 ディスク上のデータはどの程度スクランブルされていますか?

  2. Linux での 1,000 万個のファイルの保存とバックアップ

  3. サーバーを再起動せずにルートファイルシステムをアンマウントする

  1. ディスクを破壊せずにLinuxでddを使用する方法

  2. パーティションレスファイルシステムのメリットは?

  3. プロセスを停止せずにバックグラウンドに置く - (ctrl + z)?