我有一个表情
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;}
...'