Якщо може бути досить простої роздруківки терміналу, і щоб вас могли задовольнити перевернуті осі, врахуйте наступне:
seq 1000 |
grep -n 11 |
while IFS=: read -r n match
do printf "%0$((n/10))s\n" "$match"
done
Вищенаведені діаграми показують перевернуту тенденцію за шкалою 10% для кожного виникнення шаблону 11 на виході seq 1000
.
Подобається це:
11
110
111
112
113
114
115
116
117
118
119
211
311
411
511
611
711
811
911
З крапками та кількістю зустрічей це може бути:
seq 1000 |
grep -n 11 | {
i=0
while IFS=: read -r n match
do printf "%02d%0$((n/10))s\n" "$((i+=1))" .
done; }
... які друкує ...
01 .
02 .
03 .
04 .
05 .
06 .
07 .
08 .
09 .
10 .
11 .
12 .
13 .
14 .
15 .
16 .
17 .
18 .
19 .
Ви можете отримати осі, як ваш приклад, набагато більше роботи і tput
- вам потрібно буде виконати \033[A
втечу (або його еквівалент, який сумісний з вашим емулятором терміналу), щоб перемістити курсор вгору по рядку для кожного події.
Якщо awk
він printf
підтримує пробіл, як і оболонка POSIX printf
, ви можете використовувати його для того ж - і, швидше за все, набагато ефективніше. Я, однак, не знаю, як користуватися awk
.