awk imprime dados na coluna fixa

0

Eu gostaria de imprimir dados na coluna fixa. Quero dizer, a coluna deveria ser como na mesa. Eu usei printf. Entrada:

To find information use the search box on the top right corner of the screen, or categorically browse the Wiki using the Documentation topic links provided below.

Find something you would like to add or edit? The Getting started section (below) gives contributors a few pointers on how to start editing articles.

Both official documentation as well as community-contributed contents can be found on the Wiki. Official documents (created by the Gentoo Documentation Team) are located in the Gentoo Project name space. 

AWK:

{
for(i=1;i<=5;i++){
printf "%20s",$i
if (i==5){print "\n"}}
}

Resultado

          To                find         information                 use                 the



        Find           something                 you               would                like



        Both            official       documentation                  as                well

Há muito espaço à esquerda e abaixo da linha com colunas. Há outra maneira de mostrar isso?

    
por diego9403 30.08.2015 / 10:41

1 resposta

0

awk -v numlines=$( wc -l t | awk '{print $1}' ) '{ if (NF>0) { for (i=1;i<=5;i++) printf("%-20s ",$i) ; if (NR != numlines) { print "" } } }' inputfile

A porção 'numlines = $ (' coloca o número de linhas no arquivo de entrada em uma variável disponível para awk chamada numlines. 'NF > 0' garante que linhas em branco sejam ignoradas. 'printf (% - 20s' assegura os campos são justificados à esquerda e têm 20 caracteres de largura. 'NR! = numlines' imprime um avanço de linha, exceto no final do arquivo.

    
por 27.12.2015 / 19:42

Tags