Aqui está um script perl que dobra o stdin em palavras (ou seja, strings separadas por espaços). Você especifica o número de "palavras" na linha de comando.
Salve-o como, por exemplo, fold-words.pl e torne-o executável com chmod +x fold-words.pl
#! /usr/bin/perl
use strict;
my $max = shift ;
while (<>) {
my $count = 0;
foreach my $word (split) {
print "$word " ;
$count++ ;
print "\n" if ($count % $max == 0)
}
print "\n" if ($count % $max != 0);
$count=0;
}
Exemplo de saída:
$ echo "1 2 6 9 18 19 25 67 89 102 140 187 99 12" | ./fold-words.pl 3
1 2 6
9 18 19
25 67 89
102 140 187
99 12
Note que é possível ter uma definição mais rigorosa (ou até bizarra) de "palavras" alterando o (split)
para usar qualquer expressão regular arbitrária. por exemplo. (split /\t/)
será dividido apenas em guias únicas, em vez do padrão "um ou mais caracteres de espaço em branco".