Если это может быть достаточно простой распечатки терминала, и вы можете быть удовлетворены перевернутыми осями, рассмотрите следующее:
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
escape (или его эквивалент, который совместим с вашим эмулятором терминала), чтобы переместить курсор вверх на строку для каждого вхождения.
Если awk
«S printf
поддерживает пространство-набивка как POSIX-оболочка printf
делает, то вы можете использовать его , чтобы сделать то же самое - и , вероятно , гораздо более эффективно , а также. Я, однако, не знаю, как использовать awk
.