Indo pelo array 2D

0

Eu tenho uma expressão

ls -l 'find . -type f' | tr -s [:space:] | cut -d ' ' -f 5 | sort | uniq -c  | tr -s [:space:] | sort -k 2n 

que cria um array 2D como:

 xx yy
 xx yy
 xx yy

em que xx é a numerosidade de incidência e yy é o tamanho dos arquivos com incidência xx. O que eu preciso é comparar cada célula yy com alguns números (como se (yy < 100 B) .. if (yy < kiB) .. etc.) e de acordo com esta impressão '#' xx vezes para a linha direita na tabela. Eu estava tentando

awk '{print $1;}'

mas leva apenas uma coluna e eu não consigo especificar a linha como em C, por exemplo.
É de alguma forma possível fazê-lo? ele deve funcionar em dash, ksh e bash.

    
por Erik 17.03.2017 / 20:58

1 resposta

0

Antes de cada bloco em awk , você pode colocar uma condição que deve ser atendida.

awk '$2 < 100 {for (i = 0; i < $1; i++) printf "#"; next;}
     $2 < 500 {for (i = 0; i < $1; i++) printf "x"; next;}
     ...'
    
por 17.03.2017 / 21:10