shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] 51 uma boa idéia ...


From: Julio C. Neves
Subject: Re: [shell-script] 51 uma boa idéia ...
Date: Fri, 26 Dec 2014 18:37:28 -0200

Isso é um prato cheio para um dos mais novos intrínsecos (built in) do Bash, pois só foi incorporado na v 4.0; Veja seu man:

       mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
       readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
              Read lines from the standard input into the indexed array variable array, or from file descriptor fd if the -u  option  is  supplied.   The
              variable MAPFILE is the default array.  Options, if supplied, have the following meanings:
              -n     Copy at most count lines.  If count is 0, all lines are copied.
              -O     Begin assigning to array at index origin.  The default index is 0.
              -s     Discard the first count lines read.
              -t     Remove a trailing newline from each line read.
              -u     Read lines from file descriptor fd instead of the standard input.
              -C     Evaluate callback each time quantum lines are read.  The -c option specifies quantum.
              -c     Specify the number of lines read between each call to callback.

Ou seja vc lê para um vetor com -O 1 e -n 102.

Antes de continuar, execute a seguinte linha:
$ seq -w 102 | column -c16
Era isso que vc queria? Então basta usar o cmd column no vetor, passar -O para 52 e começar de novo (obviamente isso está dentro de um while)


Abcs,
Julio
@juliobash
P
róximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 09 a 13/03/15
São Paulo 4Linux 24 a 28/11/14
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 26 de dezembro de 2014 17:25, address@hidden [shell-script] <address@hidden> escreveu:
 

Pessoal,


Estou com um arquivo com mais de 8000 linhas, mais preciso dividir em duas colunas em blocos de 51 linhas, ou seja :


COL1 | COL2
1-51 | 52-103
104-155 | 156-207

...

Ou seja preciso pegar os blocos de 51 linhas e colocar o segundo bloco de 51 linhas em uma coluna ao lado do primeiro bloco e assim por diante, tentei resolver usando o awk mas não consegui.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]