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;}
...'
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.
Tags shell-script array dash