2020-06-03 15:39:18 +03:00
|
|
|
#!/usr/bin/env perl
|
|
|
|
#
|
|
|
|
# simple script for filling/clipping data to a certain size
|
|
|
|
# in number of lines
|
|
|
|
|
|
|
|
use strict;
|
2020-06-08 14:14:55 +03:00
|
|
|
use Getopt::Std;
|
|
|
|
|
|
|
|
use vars qw/$opt_m/;
|
|
|
|
|
|
|
|
getopts('m:');
|
2020-06-03 15:39:18 +03:00
|
|
|
|
|
|
|
my $size = shift(@ARGV);
|
|
|
|
my $file = shift(@ARGV);
|
|
|
|
|
|
|
|
my $count=0;
|
2020-06-08 14:14:55 +03:00
|
|
|
my $repeated=0;
|
2020-06-03 15:39:18 +03:00
|
|
|
while ($count < $size){
|
2021-03-30 00:00:28 +03:00
|
|
|
if ($file=~/\.gz$/){
|
|
|
|
open F,"gzip -cd <$file |" || die "cannot open $file";
|
|
|
|
}
|
|
|
|
else{ open F,"<$file" || die "cannot read from $file!\n"; }
|
2020-06-03 15:39:18 +03:00
|
|
|
while (<F>){
|
|
|
|
$count++;
|
|
|
|
print;
|
|
|
|
last if ($count >= $size);
|
|
|
|
}
|
2020-06-08 14:14:55 +03:00
|
|
|
close F;
|
|
|
|
$repeated++;
|
2022-02-05 14:40:55 +03:00
|
|
|
last unless ($count);
|
2020-06-08 14:14:55 +03:00
|
|
|
last if ($opt_m && $repeated > $opt_m);
|
2020-06-03 15:39:18 +03:00
|
|
|
}
|