GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Splitten von gezippten Protokolldateien, ohne die entzippten Splits auf der Festplatte zu speichern

Ein Skript wie das folgende könnte ausreichen.

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

Sie können den split --filter verwenden Option wie im Handbuch erklärt, z. B.

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

Bearbeiten:nicht bekannt, wenn --filter Option wurde eingeführt, aber laut Kommentaren funktioniert sie nicht in core utils 8.4 .


Linux
  1. So verwenden Sie dd unter Linux, ohne Ihre Festplatte zu zerstören

  2. So finden Sie unter Linux heraus, ob es sich bei der Festplatte um eine SSD oder HDD handelt

  3. Wie tariere ich ein Verzeichnis, ohne die Verzeichnisstruktur beizubehalten?

  4. Alternative zum tee-Befehl ohne STDOUT

  5. Den Inhalt einer Festplatte auf Null setzen, ohne das Dateisystem zu zerstören

Kali Linux in der DigitalOcean-Cloud

Die 15 besten Software zum Klonen von Festplatten für Linux-Desktops

Linux mremap ohne das alte Mapping freizugeben?

Wie erhalte ich die Anzahl der physischen Festplatten in Linux?

Machen Sie das Kopieren von Datenträgern/Datenträgern langsamer

Speichern und Sichern von 10 Millionen Dateien unter Linux