GNU/Linux >> Linux Esercitazione >  >> Linux

Divisione dei file di registro compressi con gzip senza memorizzare le divisioni decompresse su disco

Potrebbe bastare uno script come il seguente.

#!/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++;
}

Puoi usare lo split --filter opzione come spiegato nel manuale, ad es.

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

Modifica:non consapevole quando --filter l'opzione è stata introdotta ma, secondo i commenti, non funziona in core utils 8.4 .


Linux
  1. Linux mremap senza liberare la vecchia mappatura?

  2. Come ottenere il numero di dischi fisici in Linux?

  3. Rendi la copia disco/disco più lenta

  4. Archiviazione e backup di 10 milioni di file su Linux

  5. Smontaggio del filesystem root senza riavviare il server

I pregi di un filesystem senza partizioni?

Cronologia dell'archivio senza uscire dalla shell?

Linux – Rendi più lenta la copia del disco/disco?

Modo script per identificare l'ennesima partizione di un disco?

Kali Linux nel DigitalOcean Cloud

I 15 migliori software di clonazione del disco per desktop Linux