遍历二维数组

遍历二维数组

我有一个表情

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

它创建一个二维数组,例如:

 xx yy
 xx yy
 xx yy

其中 xx 是发生次数,yy 是发生次数为 xx 的文件的大小。我需要的是将每个单元格 yy 与一些数字进行比较(例如 if (yy < 100 B) .. if(yy < kiB) .. 等),并根据此打印 '#' xx 次到表中的右行。我正在尝试

awk '{print $1;}'

但它只需要一列,我无法像 C 中那样指定行。
有可能以某种方式做到这一点吗?它必须适用于 dash、ksh 和 bash。

答案1

在每个块之前,awk您可以放置​​一个必须满足的条件。

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

相关内容