Skrip seperti berikut mungkin cukup.
#!/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++;
}
Anda dapat menggunakan split --filter
opsi seperti yang dijelaskan dalam manual mis.
zcat biglogfile.gz | split -l500000 --filter='gzip > $FILE.gz'
Sunting:tidak sadar saat --filter
opsi diperkenalkan tetapi menurut komentar, itu tidak berfungsi di core utils 8.4
.
Bagaimana saya bisa memformat keluaran grep saya untuk menampilkan nomor baris di akhir baris, dan juga hitungan hit?
C++ di Linux tidak mengenali perintah seperti exit() dan printf()