표정이 있어요
ls -l `find . -type f` | tr -s [:space:] | cut -d ' ' -f 5 | sort | uniq -c | tr -s [:space:] | sort -k 2n
다음과 같은 2D 배열을 생성합니다.
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;}
...'