mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-22 14:07:55 +00:00
parallel: --group-by initial version. Documentation missing.
This commit is contained in:
parent
32318fca9c
commit
818439c3ff
122
src/parallel
122
src/parallel
|
@ -53,9 +53,9 @@ sub set_input_source_header($$) {
|
||||||
for my $s (split /$delimiter/o, $line) {
|
for my $s (split /$delimiter/o, $line) {
|
||||||
::debug("init", "Colname: '$s'");
|
::debug("init", "Colname: '$s'");
|
||||||
# Replace {colname} with {2}
|
# Replace {colname} with {2}
|
||||||
for(@$command_ref,@Global::ret_files,@Global::transfer_files,
|
for(@$command_ref, @Global::ret_files,
|
||||||
$opt::tagstring, $opt::workdir, $opt::results,
|
@Global::transfer_files, $opt::tagstring,
|
||||||
$opt::retries) {
|
$opt::workdir, $opt::results, $opt::retries) {
|
||||||
# Skip if undefined
|
# Skip if undefined
|
||||||
$_ or next;
|
$_ or next;
|
||||||
s:\{$s(|/|//|\.|/\.)\}:\{$id$1\}:g;
|
s:\{$s(|/|//|\.|/\.)\}:\{$id$1\}:g;
|
||||||
|
@ -480,10 +480,13 @@ sub find_header($$) {
|
||||||
# Uses:
|
# Uses:
|
||||||
# $opt::header
|
# $opt::header
|
||||||
# $Global::blocksize
|
# $Global::blocksize
|
||||||
|
# $Global::header
|
||||||
# Returns:
|
# Returns:
|
||||||
# $header string
|
# $header string
|
||||||
my ($buf_ref, $fh) = @_;
|
my ($buf_ref, $fh) = @_;
|
||||||
my $header = "";
|
my $header = "";
|
||||||
|
# $Global::header may be set in group_by_loop()
|
||||||
|
if($Global::header) { return $Global::header }
|
||||||
if($opt::header) {
|
if($opt::header) {
|
||||||
if($opt::header eq ":") { $opt::header = "(.*\n)"; }
|
if($opt::header eq ":") { $opt::header = "(.*\n)"; }
|
||||||
# Number = number of lines
|
# Number = number of lines
|
||||||
|
@ -597,6 +600,88 @@ sub cat_partial($@) {
|
||||||
" perl -e '$script' @start_len |";
|
" perl -e '$script' @start_len |";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub group_by_loop($) {
|
||||||
|
# Generate perl code for group-by loop
|
||||||
|
# Insert a $recsep when the column value changes
|
||||||
|
# The column value can be computed with $perexpr
|
||||||
|
my($recsep) = @_;
|
||||||
|
my $groupby = $opt::groupby;
|
||||||
|
my ($col,$perlexpr);
|
||||||
|
if($groupby =~ /^[a-z0-9_]+(\s|$)/i) {
|
||||||
|
# Column name/number (possibly prefix)
|
||||||
|
if($groupby =~ s/^(\d+)\s*//) {
|
||||||
|
# Column number (possibly prefix)
|
||||||
|
$col = $1-1;
|
||||||
|
} elsif($groupby =~ s/^([a-z0-9_]+)\s*//) {
|
||||||
|
# Column name (possibly prefix)
|
||||||
|
my $colname = $1;
|
||||||
|
my($read,$char,@line,$header);
|
||||||
|
# A full line, but nothing more (the rest must be read by the child)
|
||||||
|
do {
|
||||||
|
$read = sysread(STDIN,$char,1);
|
||||||
|
push @line, $char;
|
||||||
|
} while($read and $char ne "\n");
|
||||||
|
# $Global::header used to prepend block to each job
|
||||||
|
$Global::header = join "", @line;
|
||||||
|
# Split on --copsep pattern
|
||||||
|
my @headers = split/$opt::colsep/, $Global::header;
|
||||||
|
my %headers;
|
||||||
|
# Numbered 0..n-1 due to being used by $F[n]
|
||||||
|
@headers{@headers} = (0..$#headers);
|
||||||
|
$col = $headers{$colname};
|
||||||
|
if(not defined $col) {
|
||||||
|
::error("Column '$colname' $opt::colsep not found in header",keys %headers);
|
||||||
|
::wait_and_exit(255);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# What is left of $groupby is $perlexpr
|
||||||
|
$perlexpr = $groupby;
|
||||||
|
|
||||||
|
my $loop = ::spacefree(0,'{
|
||||||
|
local $_=COLVALUE;
|
||||||
|
PERLEXPR;
|
||||||
|
if(! defined $last) { $last = $_ }
|
||||||
|
if(($last) ne $_) {
|
||||||
|
print "RECSEP";
|
||||||
|
$last = $_;
|
||||||
|
}
|
||||||
|
}');
|
||||||
|
|
||||||
|
if(defined $col) {
|
||||||
|
$loop =~ s/COLVALUE/\$F[$col]/g;
|
||||||
|
} else {
|
||||||
|
$loop =~ s/COLVALUE/\$_/g;
|
||||||
|
}
|
||||||
|
$loop =~ s/PERLEXPR/$perlexpr/g;
|
||||||
|
$loop =~ s/RECSEP/$recsep/g;
|
||||||
|
return $loop;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub group_by_stdin_filter() {
|
||||||
|
# Record separator with 119 bit random value
|
||||||
|
$opt::recend = '';
|
||||||
|
$opt::recstart =
|
||||||
|
join "", map { (0..9,"a".."z","A".."Z")[rand(62)] } (1..20);
|
||||||
|
$opt::remove_rec_sep = 1;
|
||||||
|
my @filter;
|
||||||
|
push @filter, "perl";
|
||||||
|
if($opt::groupby =~ /^[a-z0-9_]+(\s|$)/i) {
|
||||||
|
# This is column number/name
|
||||||
|
# Use -a (auto-split)
|
||||||
|
push @filter, "-a";
|
||||||
|
$opt::colsep ||= "\t";
|
||||||
|
my $sep = $opt::colsep;
|
||||||
|
$sep =~ s/\t/\\t/g;
|
||||||
|
$sep =~ s/\"/\\"/g;
|
||||||
|
push @filter, "-F$sep";
|
||||||
|
}
|
||||||
|
push @filter, "-pe";
|
||||||
|
push @filter, group_by_loop($opt::recstart);
|
||||||
|
::debug("init", "@filter\n");
|
||||||
|
open(STDIN, '-|', @filter) || die ("Cannot start @filter");
|
||||||
|
}
|
||||||
|
|
||||||
sub spreadstdin() {
|
sub spreadstdin() {
|
||||||
# read a record
|
# read a record
|
||||||
# Spawn a job and print the record to it.
|
# Spawn a job and print the record to it.
|
||||||
|
@ -1259,6 +1344,7 @@ sub options_hash() {
|
||||||
"pipepart|pipe-part" => \$opt::pipepart,
|
"pipepart|pipe-part" => \$opt::pipepart,
|
||||||
"tee" => \$opt::tee,
|
"tee" => \$opt::tee,
|
||||||
"shard=s" => \$opt::shard,
|
"shard=s" => \$opt::shard,
|
||||||
|
"groupby|group-by=s" => \$opt::groupby,
|
||||||
"hgrp|hostgrp|hostgroup|hostgroups" => \$opt::hostgroups,
|
"hgrp|hostgrp|hostgroup|hostgroups" => \$opt::hostgroups,
|
||||||
"embed" => \$opt::embed,
|
"embed" => \$opt::embed,
|
||||||
);
|
);
|
||||||
|
@ -1705,11 +1791,34 @@ sub check_invalid_option_combinations() {
|
||||||
"--noctrlc has been retired.");
|
"--noctrlc has been retired.");
|
||||||
::wait_and_exit(255);
|
::wait_and_exit(255);
|
||||||
}
|
}
|
||||||
|
if($opt::groupby) {
|
||||||
|
if(not $opt::pipe) {
|
||||||
|
$opt::pipe = 1;
|
||||||
|
}
|
||||||
|
if($opt::remove_rec_sep) {
|
||||||
|
::error("--remove-rec-sep is not compatible with --groupby");
|
||||||
|
::wait_and_exit(255);
|
||||||
|
}
|
||||||
|
if($opt::recstart) {
|
||||||
|
::error("--recstart is not compatible with --groupby");
|
||||||
|
::wait_and_exit(255);
|
||||||
|
}
|
||||||
|
if($opt::recend ne "\n") {
|
||||||
|
::error("--recend is not compatible with --groupby");
|
||||||
|
::wait_and_exit(255);
|
||||||
|
}
|
||||||
|
if($opt::pipepart) {
|
||||||
|
# TODO This may be possible to do later
|
||||||
|
# Finding split points might be a bitch though
|
||||||
|
::error("--pipepart is not compatible with --groupby");
|
||||||
|
::wait_and_exit(255);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub init_globals() {
|
sub init_globals() {
|
||||||
# Defaults:
|
# Defaults:
|
||||||
$Global::version = 20190422;
|
$Global::version = 20190504;
|
||||||
$Global::progname = 'parallel';
|
$Global::progname = 'parallel';
|
||||||
$Global::infinity = 2**31;
|
$Global::infinity = 2**31;
|
||||||
$Global::debug = 0;
|
$Global::debug = 0;
|
||||||
|
@ -10811,7 +10920,7 @@ sub get($) {
|
||||||
$self->{'len'},
|
$self->{'len'},
|
||||||
);
|
);
|
||||||
$cmd_line->populate();
|
$cmd_line->populate();
|
||||||
::debug("init","cmd_line->number_of_args ",
|
::debug("run","cmd_line->number_of_args ",
|
||||||
$cmd_line->number_of_args(), "\n");
|
$cmd_line->number_of_args(), "\n");
|
||||||
if(not $Global::no_more_input and ($opt::pipe or $opt::pipepart)) {
|
if(not $Global::no_more_input and ($opt::pipe or $opt::pipepart)) {
|
||||||
if($cmd_line->replaced() eq "") {
|
if($cmd_line->replaced() eq "") {
|
||||||
|
@ -12449,6 +12558,9 @@ sub main() {
|
||||||
pipe_shard_setup();
|
pipe_shard_setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($opt::groupby) {
|
||||||
|
group_by_stdin_filter();
|
||||||
|
}
|
||||||
if($opt::eta or $opt::bar or $opt::shuf or $Global::halt_pct) {
|
if($opt::eta or $opt::bar or $opt::shuf or $Global::halt_pct) {
|
||||||
# Count the number of jobs or shuffle all jobs
|
# Count the number of jobs or shuffle all jobs
|
||||||
# before starting any.
|
# before starting any.
|
||||||
|
|
|
@ -312,6 +312,79 @@ par_lb_mem_usage() {
|
||||||
memusage 100000 parallel --lb ::: 'long_line; long_line'
|
memusage 100000 parallel --lb ::: 'long_line; long_line'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
par_groupby() {
|
||||||
|
tsv() {
|
||||||
|
printf "%s\t" a1 b1 c1; echo
|
||||||
|
printf "%s\t" 2 2 2; echo
|
||||||
|
printf "%s\t" 3 2 2; echo
|
||||||
|
printf "%s\t" 3 3 2; echo
|
||||||
|
printf "%s\t" 3 2 4; echo
|
||||||
|
printf "%s\t" 3 2 2; echo
|
||||||
|
printf "%s\t" 3 2 3; echo
|
||||||
|
}
|
||||||
|
export -f tsv
|
||||||
|
|
||||||
|
ssv() {
|
||||||
|
# space separated
|
||||||
|
printf "%s\t" a1 b1 c1; echo
|
||||||
|
printf "%s " 2 2 2; echo
|
||||||
|
printf "%s \t" 3 2 2; echo
|
||||||
|
printf "%s\t " 3 3 2; echo
|
||||||
|
printf "%s " 3 2 4; echo
|
||||||
|
printf "%s\t\t" 3 2 2; echo
|
||||||
|
printf "%s\t \t" 3 2 3; echo
|
||||||
|
}
|
||||||
|
export -f ssv
|
||||||
|
|
||||||
|
cssv() {
|
||||||
|
# , + space separated
|
||||||
|
printf "%s,\t" a1 b1 c1; echo
|
||||||
|
printf "%s ," 2 2 2; echo
|
||||||
|
printf "%s ,\t" 3 2 2; echo
|
||||||
|
printf "%s\t, " 3 3 2; echo
|
||||||
|
printf "%s,," 3 2 4; echo
|
||||||
|
printf "%s\t,,, " 3 2 2; echo
|
||||||
|
printf "%s\t" 3 2 3; echo
|
||||||
|
}
|
||||||
|
export -f cssv
|
||||||
|
|
||||||
|
csv() {
|
||||||
|
# , separated
|
||||||
|
printf "%s," a1 b1 c1; echo
|
||||||
|
printf "%s," 2 2 2; echo
|
||||||
|
printf "%s," 3 2 2; echo
|
||||||
|
printf "%s," 3 3 2; echo
|
||||||
|
printf "%s," 3 2 4; echo
|
||||||
|
printf "%s," 3 2 2; echo
|
||||||
|
printf "%s," 3 2 3; echo
|
||||||
|
}
|
||||||
|
export -f csv
|
||||||
|
|
||||||
|
tester() {
|
||||||
|
block="$1"
|
||||||
|
groupby="$2"
|
||||||
|
generator="$3"
|
||||||
|
colsep="$4"
|
||||||
|
echo "### test $generator | --colsep $colsep --groupby $groupby $block"
|
||||||
|
$generator |
|
||||||
|
parallel --pipe --colsep "$colsep" --groupby "$groupby" -k $block 'echo NewRec; cat'
|
||||||
|
}
|
||||||
|
export -f tester
|
||||||
|
parallel --tag -k tester \
|
||||||
|
::: -N1 '--block 20' \
|
||||||
|
::: '3 $_%=2' 3 's/^(.).*/$1/' c1 'c1 $_%=2' \
|
||||||
|
::: tsv ssv cssv csv \
|
||||||
|
:::+ '\t' '\s+' '[\s,]+' ',' \
|
||||||
|
|
||||||
|
# Test --colsep char
|
||||||
|
# Test --colsep pattern
|
||||||
|
# Test --colsep -N1
|
||||||
|
# Test --colsep --block 20
|
||||||
|
# Test --groupby col
|
||||||
|
# Test --groupby 'col perl'
|
||||||
|
# Test space sep --colsep '\s'
|
||||||
|
# Test --colsep --header :
|
||||||
|
}
|
||||||
|
|
||||||
export -f $(compgen -A function | grep par_)
|
export -f $(compgen -A function | grep par_)
|
||||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||||
|
|
|
@ -47,6 +47,558 @@ par_dryrun_timeout_ungroup 1000 2000 8893
|
||||||
par_exitval_signal ### Test --joblog with exitval and Test --joblog with signal -- timing dependent
|
par_exitval_signal ### Test --joblog with exitval and Test --joblog with signal -- timing dependent
|
||||||
par_exitval_signal exitval=128+6 OK
|
par_exitval_signal exitval=128+6 OK
|
||||||
par_exitval_signal signal OK
|
par_exitval_signal signal OK
|
||||||
|
par_groupby -N1 3 $_%=2 tsv \t ### test tsv | --colsep \t --groupby 3 $_%=2 -N1
|
||||||
|
par_groupby -N1 3 $_%=2 tsv \t NewRec
|
||||||
|
par_groupby -N1 3 $_%=2 tsv \t a1 b1 c1
|
||||||
|
par_groupby -N1 3 $_%=2 tsv \t 2 2 2
|
||||||
|
par_groupby -N1 3 $_%=2 tsv \t 3 2 2
|
||||||
|
par_groupby -N1 3 $_%=2 tsv \t 3 3 2
|
||||||
|
par_groupby -N1 3 $_%=2 tsv \t 3 2 4
|
||||||
|
par_groupby -N1 3 $_%=2 tsv \t 3 2 2
|
||||||
|
par_groupby -N1 3 $_%=2 tsv \t NewRec
|
||||||
|
par_groupby -N1 3 $_%=2 tsv \t 3 2 3
|
||||||
|
par_groupby -N1 3 $_%=2 ssv \s+ ### test ssv | --colsep \s+ --groupby 3 $_%=2 -N1
|
||||||
|
par_groupby -N1 3 $_%=2 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 3 $_%=2 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby -N1 3 $_%=2 ssv \s+ 2 2 2
|
||||||
|
par_groupby -N1 3 $_%=2 ssv \s+ 3 2 2
|
||||||
|
par_groupby -N1 3 $_%=2 ssv \s+ 3 3 2
|
||||||
|
par_groupby -N1 3 $_%=2 ssv \s+ 3 2 4
|
||||||
|
par_groupby -N1 3 $_%=2 ssv \s+ 3 2 2
|
||||||
|
par_groupby -N1 3 $_%=2 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 3 $_%=2 ssv \s+ 3 2 3
|
||||||
|
par_groupby -N1 3 $_%=2 cssv [\s,]+ ### test cssv | --colsep [\s,]+ --groupby 3 $_%=2 -N1
|
||||||
|
par_groupby -N1 3 $_%=2 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 3 $_%=2 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby -N1 3 $_%=2 cssv [\s,]+ 2 ,2 ,2 ,
|
||||||
|
par_groupby -N1 3 $_%=2 cssv [\s,]+ 3 , 2 , 2 ,
|
||||||
|
par_groupby -N1 3 $_%=2 cssv [\s,]+ 3 , 3 , 2 ,
|
||||||
|
par_groupby -N1 3 $_%=2 cssv [\s,]+ 3,,2,,4,,
|
||||||
|
par_groupby -N1 3 $_%=2 cssv [\s,]+ 3 ,,, 2 ,,, 2 ,,,
|
||||||
|
par_groupby -N1 3 $_%=2 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 3 $_%=2 cssv [\s,]+ 3 2 3
|
||||||
|
par_groupby -N1 3 $_%=2 csv , ### test csv | --colsep , --groupby 3 $_%=2 -N1
|
||||||
|
par_groupby -N1 3 $_%=2 csv , NewRec
|
||||||
|
par_groupby -N1 3 $_%=2 csv , a1,b1,c1,
|
||||||
|
par_groupby -N1 3 $_%=2 csv , 2,2,2,
|
||||||
|
par_groupby -N1 3 $_%=2 csv , 3,2,2,
|
||||||
|
par_groupby -N1 3 $_%=2 csv , 3,3,2,
|
||||||
|
par_groupby -N1 3 $_%=2 csv , 3,2,4,
|
||||||
|
par_groupby -N1 3 $_%=2 csv , 3,2,2,
|
||||||
|
par_groupby -N1 3 $_%=2 csv , NewRec
|
||||||
|
par_groupby -N1 3 $_%=2 csv , 3,2,3,
|
||||||
|
par_groupby -N1 3 tsv \t ### test tsv | --colsep \t --groupby 3 -N1
|
||||||
|
par_groupby -N1 3 tsv \t NewRec
|
||||||
|
par_groupby -N1 3 tsv \t a1 b1 c1
|
||||||
|
par_groupby -N1 3 tsv \t NewRec
|
||||||
|
par_groupby -N1 3 tsv \t 2 2 2
|
||||||
|
par_groupby -N1 3 tsv \t 3 2 2
|
||||||
|
par_groupby -N1 3 tsv \t 3 3 2
|
||||||
|
par_groupby -N1 3 tsv \t NewRec
|
||||||
|
par_groupby -N1 3 tsv \t 3 2 4
|
||||||
|
par_groupby -N1 3 tsv \t NewRec
|
||||||
|
par_groupby -N1 3 tsv \t 3 2 2
|
||||||
|
par_groupby -N1 3 tsv \t NewRec
|
||||||
|
par_groupby -N1 3 tsv \t 3 2 3
|
||||||
|
par_groupby -N1 3 ssv \s+ ### test ssv | --colsep \s+ --groupby 3 -N1
|
||||||
|
par_groupby -N1 3 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 3 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby -N1 3 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 3 ssv \s+ 2 2 2
|
||||||
|
par_groupby -N1 3 ssv \s+ 3 2 2
|
||||||
|
par_groupby -N1 3 ssv \s+ 3 3 2
|
||||||
|
par_groupby -N1 3 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 3 ssv \s+ 3 2 4
|
||||||
|
par_groupby -N1 3 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 3 ssv \s+ 3 2 2
|
||||||
|
par_groupby -N1 3 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 3 ssv \s+ 3 2 3
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ ### test cssv | --colsep [\s,]+ --groupby 3 -N1
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ 2 ,2 ,2 ,
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ 3 , 2 , 2 ,
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ 3 , 3 , 2 ,
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ 3,,2,,4,,
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ 3 ,,, 2 ,,, 2 ,,,
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 3 cssv [\s,]+ 3 2 3
|
||||||
|
par_groupby -N1 3 csv , ### test csv | --colsep , --groupby 3 -N1
|
||||||
|
par_groupby -N1 3 csv , NewRec
|
||||||
|
par_groupby -N1 3 csv , a1,b1,c1,
|
||||||
|
par_groupby -N1 3 csv , NewRec
|
||||||
|
par_groupby -N1 3 csv , 2,2,2,
|
||||||
|
par_groupby -N1 3 csv , 3,2,2,
|
||||||
|
par_groupby -N1 3 csv , 3,3,2,
|
||||||
|
par_groupby -N1 3 csv , NewRec
|
||||||
|
par_groupby -N1 3 csv , 3,2,4,
|
||||||
|
par_groupby -N1 3 csv , NewRec
|
||||||
|
par_groupby -N1 3 csv , 3,2,2,
|
||||||
|
par_groupby -N1 3 csv , NewRec
|
||||||
|
par_groupby -N1 3 csv , 3,2,3,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ tsv \t ### test tsv | --colsep \t --groupby s/^(.).*/$1/ -N1
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ tsv \t NewRec
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ tsv \t a1 b1 c1
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ tsv \t NewRec
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ tsv \t 2 2 2
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ tsv \t NewRec
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ tsv \t 3 2 2
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ tsv \t 3 3 2
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ tsv \t 3 2 4
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ tsv \t 3 2 2
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ tsv \t 3 2 3
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ ssv \s+ ### test ssv | --colsep \s+ --groupby s/^(.).*/$1/ -N1
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ ssv \s+ NewRec
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ ssv \s+ a1 b1 c1
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ ssv \s+ NewRec
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ ssv \s+ 2 2 2
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ ssv \s+ NewRec
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ ssv \s+ 3 2 2
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ ssv \s+ 3 3 2
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ ssv \s+ 3 2 4
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ ssv \s+ 3 2 2
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ ssv \s+ 3 2 3
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ cssv [\s,]+ ### test cssv | --colsep [\s,]+ --groupby s/^(.).*/$1/ -N1
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ cssv [\s,]+ 2 ,2 ,2 ,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ cssv [\s,]+ 3 , 2 , 2 ,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ cssv [\s,]+ 3 , 3 , 2 ,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ cssv [\s,]+ 3,,2,,4,,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ cssv [\s,]+ 3 ,,, 2 ,,, 2 ,,,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ cssv [\s,]+ 3 2 3
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ csv , ### test csv | --colsep , --groupby s/^(.).*/$1/ -N1
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ csv , NewRec
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ csv , a1,b1,c1,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ csv , NewRec
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ csv , 2,2,2,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ csv , NewRec
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ csv , 3,2,2,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ csv , 3,3,2,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ csv , 3,2,4,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ csv , 3,2,2,
|
||||||
|
par_groupby -N1 s/^(.).*/$1/ csv , 3,2,3,
|
||||||
|
par_groupby -N1 c1 tsv \t ### test tsv | --colsep \t --groupby c1 -N1
|
||||||
|
par_groupby -N1 c1 tsv \t NewRec
|
||||||
|
par_groupby -N1 c1 tsv \t a1 b1 c1
|
||||||
|
par_groupby -N1 c1 tsv \t 2 2 2
|
||||||
|
par_groupby -N1 c1 tsv \t 3 2 2
|
||||||
|
par_groupby -N1 c1 tsv \t 3 3 2
|
||||||
|
par_groupby -N1 c1 tsv \t NewRec
|
||||||
|
par_groupby -N1 c1 tsv \t a1 b1 c1
|
||||||
|
par_groupby -N1 c1 tsv \t 3 2 4
|
||||||
|
par_groupby -N1 c1 tsv \t NewRec
|
||||||
|
par_groupby -N1 c1 tsv \t a1 b1 c1
|
||||||
|
par_groupby -N1 c1 tsv \t 3 2 2
|
||||||
|
par_groupby -N1 c1 tsv \t NewRec
|
||||||
|
par_groupby -N1 c1 tsv \t a1 b1 c1
|
||||||
|
par_groupby -N1 c1 tsv \t 3 2 3
|
||||||
|
par_groupby -N1 c1 ssv \s+ ### test ssv | --colsep \s+ --groupby c1 -N1
|
||||||
|
par_groupby -N1 c1 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 c1 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby -N1 c1 ssv \s+ 2 2 2
|
||||||
|
par_groupby -N1 c1 ssv \s+ 3 2 2
|
||||||
|
par_groupby -N1 c1 ssv \s+ 3 3 2
|
||||||
|
par_groupby -N1 c1 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 c1 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby -N1 c1 ssv \s+ 3 2 4
|
||||||
|
par_groupby -N1 c1 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 c1 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby -N1 c1 ssv \s+ 3 2 2
|
||||||
|
par_groupby -N1 c1 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 c1 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby -N1 c1 ssv \s+ 3 2 3
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ ### test cssv | --colsep [\s,]+ --groupby c1 -N1
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ 2 ,2 ,2 ,
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ 3 , 2 , 2 ,
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ 3 , 3 , 2 ,
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ 3,,2,,4,,
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ 3 ,,, 2 ,,, 2 ,,,
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby -N1 c1 cssv [\s,]+ 3 2 3
|
||||||
|
par_groupby -N1 c1 csv , ### test csv | --colsep , --groupby c1 -N1
|
||||||
|
par_groupby -N1 c1 csv , NewRec
|
||||||
|
par_groupby -N1 c1 csv , a1,b1,c1,
|
||||||
|
par_groupby -N1 c1 csv , 2,2,2,
|
||||||
|
par_groupby -N1 c1 csv , 3,2,2,
|
||||||
|
par_groupby -N1 c1 csv , 3,3,2,
|
||||||
|
par_groupby -N1 c1 csv , NewRec
|
||||||
|
par_groupby -N1 c1 csv , a1,b1,c1,
|
||||||
|
par_groupby -N1 c1 csv , 3,2,4,
|
||||||
|
par_groupby -N1 c1 csv , NewRec
|
||||||
|
par_groupby -N1 c1 csv , a1,b1,c1,
|
||||||
|
par_groupby -N1 c1 csv , 3,2,2,
|
||||||
|
par_groupby -N1 c1 csv , NewRec
|
||||||
|
par_groupby -N1 c1 csv , a1,b1,c1,
|
||||||
|
par_groupby -N1 c1 csv , 3,2,3,
|
||||||
|
par_groupby -N1 c1 $_%=2 tsv \t ### test tsv | --colsep \t --groupby c1 $_%=2 -N1
|
||||||
|
par_groupby -N1 c1 $_%=2 tsv \t NewRec
|
||||||
|
par_groupby -N1 c1 $_%=2 tsv \t a1 b1 c1
|
||||||
|
par_groupby -N1 c1 $_%=2 tsv \t 2 2 2
|
||||||
|
par_groupby -N1 c1 $_%=2 tsv \t 3 2 2
|
||||||
|
par_groupby -N1 c1 $_%=2 tsv \t 3 3 2
|
||||||
|
par_groupby -N1 c1 $_%=2 tsv \t 3 2 4
|
||||||
|
par_groupby -N1 c1 $_%=2 tsv \t 3 2 2
|
||||||
|
par_groupby -N1 c1 $_%=2 tsv \t NewRec
|
||||||
|
par_groupby -N1 c1 $_%=2 tsv \t a1 b1 c1
|
||||||
|
par_groupby -N1 c1 $_%=2 tsv \t 3 2 3
|
||||||
|
par_groupby -N1 c1 $_%=2 ssv \s+ ### test ssv | --colsep \s+ --groupby c1 $_%=2 -N1
|
||||||
|
par_groupby -N1 c1 $_%=2 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 c1 $_%=2 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby -N1 c1 $_%=2 ssv \s+ 2 2 2
|
||||||
|
par_groupby -N1 c1 $_%=2 ssv \s+ 3 2 2
|
||||||
|
par_groupby -N1 c1 $_%=2 ssv \s+ 3 3 2
|
||||||
|
par_groupby -N1 c1 $_%=2 ssv \s+ 3 2 4
|
||||||
|
par_groupby -N1 c1 $_%=2 ssv \s+ 3 2 2
|
||||||
|
par_groupby -N1 c1 $_%=2 ssv \s+ NewRec
|
||||||
|
par_groupby -N1 c1 $_%=2 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby -N1 c1 $_%=2 ssv \s+ 3 2 3
|
||||||
|
par_groupby -N1 c1 $_%=2 cssv [\s,]+ ### test cssv | --colsep [\s,]+ --groupby c1 $_%=2 -N1
|
||||||
|
par_groupby -N1 c1 $_%=2 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 c1 $_%=2 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby -N1 c1 $_%=2 cssv [\s,]+ 2 ,2 ,2 ,
|
||||||
|
par_groupby -N1 c1 $_%=2 cssv [\s,]+ 3 , 2 , 2 ,
|
||||||
|
par_groupby -N1 c1 $_%=2 cssv [\s,]+ 3 , 3 , 2 ,
|
||||||
|
par_groupby -N1 c1 $_%=2 cssv [\s,]+ 3,,2,,4,,
|
||||||
|
par_groupby -N1 c1 $_%=2 cssv [\s,]+ 3 ,,, 2 ,,, 2 ,,,
|
||||||
|
par_groupby -N1 c1 $_%=2 cssv [\s,]+ NewRec
|
||||||
|
par_groupby -N1 c1 $_%=2 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby -N1 c1 $_%=2 cssv [\s,]+ 3 2 3
|
||||||
|
par_groupby -N1 c1 $_%=2 csv , ### test csv | --colsep , --groupby c1 $_%=2 -N1
|
||||||
|
par_groupby -N1 c1 $_%=2 csv , NewRec
|
||||||
|
par_groupby -N1 c1 $_%=2 csv , a1,b1,c1,
|
||||||
|
par_groupby -N1 c1 $_%=2 csv , 2,2,2,
|
||||||
|
par_groupby -N1 c1 $_%=2 csv , 3,2,2,
|
||||||
|
par_groupby -N1 c1 $_%=2 csv , 3,3,2,
|
||||||
|
par_groupby -N1 c1 $_%=2 csv , 3,2,4,
|
||||||
|
par_groupby -N1 c1 $_%=2 csv , 3,2,2,
|
||||||
|
par_groupby -N1 c1 $_%=2 csv , NewRec
|
||||||
|
par_groupby -N1 c1 $_%=2 csv , a1,b1,c1,
|
||||||
|
par_groupby -N1 c1 $_%=2 csv , 3,2,3,
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t ### test tsv | --colsep \t --groupby 3 $_%=2 --block 20
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t NewRec
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t a1 b1 c1
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t 2 2 2
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t 3 2 2
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t 3 3 2
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t 3 2 4
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t 3 2 2
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t NewRec
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t 3 2 3
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 3 $_%=2 tsv \t parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ ### test ssv | --colsep \s+ --groupby 3 $_%=2 --block 20
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ 2 2 2
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ 3 2 2
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ 3 3 2
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ 3 2 4
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ 3 2 2
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ 3 2 3
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 3 $_%=2 ssv \s+ parallel: Warning: A record was longer than 66. Increasing to --blocksize 87.
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ ### test cssv | --colsep [\s,]+ --groupby 3 $_%=2 --block 20
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ NewRec
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ 2 ,2 ,2 ,
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ 3 , 2 , 2 ,
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ 3 , 3 , 2 ,
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ 3,,2,,4,,
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ 3 ,,, 2 ,,, 2 ,,,
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ 3 2 3
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ parallel: Warning: A record was longer than 66. Increasing to --blocksize 87.
|
||||||
|
par_groupby --block 20 3 $_%=2 cssv [\s,]+ parallel: Warning: A record was longer than 87. Increasing to --blocksize 115.
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , ### test csv | --colsep , --groupby 3 $_%=2 --block 20
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , NewRec
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , a1,b1,c1,
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , 2,2,2,
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , 3,2,2,
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , 3,3,2,
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , 3,2,4,
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , 3,2,2,
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , NewRec
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , 3,2,3,
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 3 $_%=2 csv , parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 3 tsv \t ### test tsv | --colsep \t --groupby 3 --block 20
|
||||||
|
par_groupby --block 20 3 tsv \t NewRec
|
||||||
|
par_groupby --block 20 3 tsv \t a1 b1 c1
|
||||||
|
par_groupby --block 20 3 tsv \t NewRec
|
||||||
|
par_groupby --block 20 3 tsv \t 2 2 2
|
||||||
|
par_groupby --block 20 3 tsv \t 3 2 2
|
||||||
|
par_groupby --block 20 3 tsv \t 3 3 2
|
||||||
|
par_groupby --block 20 3 tsv \t NewRec
|
||||||
|
par_groupby --block 20 3 tsv \t 3 2 4
|
||||||
|
par_groupby --block 20 3 tsv \t NewRec
|
||||||
|
par_groupby --block 20 3 tsv \t 3 2 2
|
||||||
|
par_groupby --block 20 3 tsv \t 3 2 3
|
||||||
|
par_groupby --block 20 3 tsv \t parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 3 tsv \t parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 3 tsv \t parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 3 tsv \t parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 3 ssv \s+ ### test ssv | --colsep \s+ --groupby 3 --block 20
|
||||||
|
par_groupby --block 20 3 ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 3 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby --block 20 3 ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 3 ssv \s+ 2 2 2
|
||||||
|
par_groupby --block 20 3 ssv \s+ 3 2 2
|
||||||
|
par_groupby --block 20 3 ssv \s+ 3 3 2
|
||||||
|
par_groupby --block 20 3 ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 3 ssv \s+ 3 2 4
|
||||||
|
par_groupby --block 20 3 ssv \s+ 3 2 2
|
||||||
|
par_groupby --block 20 3 ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 3 ssv \s+ 3 2 3
|
||||||
|
par_groupby --block 20 3 ssv \s+ parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 3 ssv \s+ parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 3 ssv \s+ parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 3 ssv \s+ parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 3 ssv \s+ parallel: Warning: A record was longer than 66. Increasing to --blocksize 87.
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ ### test cssv | --colsep [\s,]+ --groupby 3 --block 20
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ NewRec
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ NewRec
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ 2 ,2 ,2 ,
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ 3 , 2 , 2 ,
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ 3 , 3 , 2 ,
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ NewRec
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ 3,,2,,4,,
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ NewRec
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ 3 ,,, 2 ,,, 2 ,,,
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ 3 2 3
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 3 cssv [\s,]+ parallel: Warning: A record was longer than 66. Increasing to --blocksize 87.
|
||||||
|
par_groupby --block 20 3 csv , ### test csv | --colsep , --groupby 3 --block 20
|
||||||
|
par_groupby --block 20 3 csv , NewRec
|
||||||
|
par_groupby --block 20 3 csv , a1,b1,c1,
|
||||||
|
par_groupby --block 20 3 csv , NewRec
|
||||||
|
par_groupby --block 20 3 csv , 2,2,2,
|
||||||
|
par_groupby --block 20 3 csv , 3,2,2,
|
||||||
|
par_groupby --block 20 3 csv , 3,3,2,
|
||||||
|
par_groupby --block 20 3 csv , NewRec
|
||||||
|
par_groupby --block 20 3 csv , 3,2,4,
|
||||||
|
par_groupby --block 20 3 csv , NewRec
|
||||||
|
par_groupby --block 20 3 csv , 3,2,2,
|
||||||
|
par_groupby --block 20 3 csv , 3,2,3,
|
||||||
|
par_groupby --block 20 3 csv , parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 3 csv , parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 3 csv , parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 3 csv , parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t ### test tsv | --colsep \t --groupby s/^(.).*/$1/ --block 20
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t NewRec
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t a1 b1 c1
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t NewRec
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t 2 2 2
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t NewRec
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t 3 2 2
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t 3 3 2
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t 3 2 4
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t 3 2 2
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t 3 2 3
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ tsv \t parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ ### test ssv | --colsep \s+ --groupby s/^(.).*/$1/ --block 20
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ a1 b1 c1
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ 2 2 2
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ 3 2 2
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ 3 3 2
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ 3 2 4
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ 3 2 2
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ 3 2 3
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ ssv \s+ parallel: Warning: A record was longer than 66. Increasing to --blocksize 87.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ ### test cssv | --colsep [\s,]+ --groupby s/^(.).*/$1/ --block 20
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ NewRec
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ NewRec
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ 2 ,2 ,2 ,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ NewRec
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ 3 , 2 , 2 ,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ 3 , 3 , 2 ,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ 3,,2,,4,,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ 3 ,,, 2 ,,, 2 ,,,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ 3 2 3
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ cssv [\s,]+ parallel: Warning: A record was longer than 66. Increasing to --blocksize 87.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , ### test csv | --colsep , --groupby s/^(.).*/$1/ --block 20
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , NewRec
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , a1,b1,c1,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , NewRec
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , 2,2,2,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , NewRec
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , 3,2,2,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , 3,3,2,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , 3,2,4,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , 3,2,2,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , 3,2,3,
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 s/^(.).*/$1/ csv , parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 c1 tsv \t ### test tsv | --colsep \t --groupby c1 --block 20
|
||||||
|
par_groupby --block 20 c1 tsv \t NewRec
|
||||||
|
par_groupby --block 20 c1 tsv \t a1 b1 c1
|
||||||
|
par_groupby --block 20 c1 tsv \t 2 2 2
|
||||||
|
par_groupby --block 20 c1 tsv \t 3 2 2
|
||||||
|
par_groupby --block 20 c1 tsv \t 3 3 2
|
||||||
|
par_groupby --block 20 c1 tsv \t NewRec
|
||||||
|
par_groupby --block 20 c1 tsv \t a1 b1 c1
|
||||||
|
par_groupby --block 20 c1 tsv \t 3 2 4
|
||||||
|
par_groupby --block 20 c1 tsv \t NewRec
|
||||||
|
par_groupby --block 20 c1 tsv \t a1 b1 c1
|
||||||
|
par_groupby --block 20 c1 tsv \t 3 2 2
|
||||||
|
par_groupby --block 20 c1 tsv \t NewRec
|
||||||
|
par_groupby --block 20 c1 tsv \t a1 b1 c1
|
||||||
|
par_groupby --block 20 c1 tsv \t 3 2 3
|
||||||
|
par_groupby --block 20 c1 tsv \t parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 c1 tsv \t parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 c1 tsv \t parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 c1 ssv \s+ ### test ssv | --colsep \s+ --groupby c1 --block 20
|
||||||
|
par_groupby --block 20 c1 ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 c1 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby --block 20 c1 ssv \s+ 2 2 2
|
||||||
|
par_groupby --block 20 c1 ssv \s+ 3 2 2
|
||||||
|
par_groupby --block 20 c1 ssv \s+ 3 3 2
|
||||||
|
par_groupby --block 20 c1 ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 c1 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby --block 20 c1 ssv \s+ 3 2 4
|
||||||
|
par_groupby --block 20 c1 ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 c1 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby --block 20 c1 ssv \s+ 3 2 2
|
||||||
|
par_groupby --block 20 c1 ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 c1 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby --block 20 c1 ssv \s+ 3 2 3
|
||||||
|
par_groupby --block 20 c1 ssv \s+ parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 c1 ssv \s+ parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 c1 ssv \s+ parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ ### test cssv | --colsep [\s,]+ --groupby c1 --block 20
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ NewRec
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ 2 ,2 ,2 ,
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ 3 , 2 , 2 ,
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ 3 , 3 , 2 ,
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ NewRec
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ 3,,2,,4,,
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ NewRec
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ 3 ,,, 2 ,,, 2 ,,,
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ 3 2 3
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 c1 cssv [\s,]+ parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 c1 csv , ### test csv | --colsep , --groupby c1 --block 20
|
||||||
|
par_groupby --block 20 c1 csv , NewRec
|
||||||
|
par_groupby --block 20 c1 csv , a1,b1,c1,
|
||||||
|
par_groupby --block 20 c1 csv , 2,2,2,
|
||||||
|
par_groupby --block 20 c1 csv , 3,2,2,
|
||||||
|
par_groupby --block 20 c1 csv , 3,3,2,
|
||||||
|
par_groupby --block 20 c1 csv , NewRec
|
||||||
|
par_groupby --block 20 c1 csv , a1,b1,c1,
|
||||||
|
par_groupby --block 20 c1 csv , 3,2,4,
|
||||||
|
par_groupby --block 20 c1 csv , NewRec
|
||||||
|
par_groupby --block 20 c1 csv , a1,b1,c1,
|
||||||
|
par_groupby --block 20 c1 csv , 3,2,2,
|
||||||
|
par_groupby --block 20 c1 csv , NewRec
|
||||||
|
par_groupby --block 20 c1 csv , a1,b1,c1,
|
||||||
|
par_groupby --block 20 c1 csv , 3,2,3,
|
||||||
|
par_groupby --block 20 c1 csv , parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 c1 csv , parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 c1 csv , parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t ### test tsv | --colsep \t --groupby c1 $_%=2 --block 20
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t NewRec
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t a1 b1 c1
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t 2 2 2
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t 3 2 2
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t 3 3 2
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t 3 2 4
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t 3 2 2
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t 3 2 3
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 c1 $_%=2 tsv \t parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ ### test ssv | --colsep \s+ --groupby c1 $_%=2 --block 20
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ NewRec
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ a1 b1 c1
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ 2 2 2
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ 3 2 2
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ 3 3 2
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ 3 2 4
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ 3 2 2
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ 3 2 3
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 c1 $_%=2 ssv \s+ parallel: Warning: A record was longer than 66. Increasing to --blocksize 87.
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ ### test cssv | --colsep [\s,]+ --groupby c1 $_%=2 --block 20
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ NewRec
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ a1, b1, c1,
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ 2 ,2 ,2 ,
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ 3 , 2 , 2 ,
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ 3 , 3 , 2 ,
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ 3,,2,,4,,
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ 3 ,,, 2 ,,, 2 ,,,
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ 3 2 3
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ parallel: Warning: A record was longer than 66. Increasing to --blocksize 87.
|
||||||
|
par_groupby --block 20 c1 $_%=2 cssv [\s,]+ parallel: Warning: A record was longer than 87. Increasing to --blocksize 115.
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , ### test csv | --colsep , --groupby c1 $_%=2 --block 20
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , NewRec
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , a1,b1,c1,
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , 2,2,2,
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , 3,2,2,
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , 3,3,2,
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , 3,2,4,
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , 3,2,2,
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , 3,2,3,
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , parallel: Warning: A record was longer than 20. Increasing to --blocksize 27.
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , parallel: Warning: A record was longer than 27. Increasing to --blocksize 37.
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , parallel: Warning: A record was longer than 37. Increasing to --blocksize 50.
|
||||||
|
par_groupby --block 20 c1 $_%=2 csv , parallel: Warning: A record was longer than 50. Increasing to --blocksize 66.
|
||||||
par_keeporder_roundrobin bug #50081: --keep-order --round-robin should give predictable results
|
par_keeporder_roundrobin bug #50081: --keep-order --round-robin should give predictable results
|
||||||
par_keeporder_roundrobin OK
|
par_keeporder_roundrobin OK
|
||||||
par_kill_hup ### Are children killed if GNU Parallel receives HUP? There should be no sleep at the end
|
par_kill_hup ### Are children killed if GNU Parallel receives HUP? There should be no sleep at the end
|
||||||
|
|
Loading…
Reference in a new issue