Nếu có thể là một bản in thiết bị đầu cuối rất đơn giản sẽ đủ, và bạn có thể hài lòng bởi các trục đảo ngược, hãy xem xét những điều sau:
seq 1000 |
grep -n 11 |
while IFS=: read -r n match
do printf "%0$((n/10))s\n" "$match"
done
Các biểu đồ trên một xu hướng đảo ngược trên thang điểm 10% cho mỗi lần xuất hiện của mẫu 11 trong đầu ra của seq 1000
.
Như thế này:
11
110
111
112
113
114
115
116
117
118
119
211
311
411
511
611
711
811
911
Với số chấm và số lần xuất hiện, nó có thể là:
seq 1000 |
grep -n 11 | {
i=0
while IFS=: read -r n match
do printf "%02d%0$((n/10))s\n" "$((i+=1))" .
done; }
... mà in ...
01 .
02 .
03 .
04 .
05 .
06 .
07 .
08 .
09 .
10 .
11 .
12 .
13 .
14 .
15 .
16 .
17 .
18 .
19 .
Bạn có thể lấy các trục như ví dụ của bạn với nhiều công việc hơn và tput
- bạn cần thực hiện \033[A
thoát (hoặc tương đương với trình giả lập thiết bị đầu cuối của bạn) để di chuyển con trỏ lên một dòng cho mỗi lần xuất hiện.
Nếu awk
's printf
hỗ trợ không gian đệm như POSIX vỏ printf
không, sau đó bạn có thể sử dụng nó để làm như vậy - và có khả năng xa hiệu quả hơn là tốt. Tôi, tuy nhiên, không biết làm thế nào để sử dụng awk
.