Bash 根据给定的输入绘制输出条

Bash 根据给定的输入绘制输出条,bash,shell,Bash,Shell,我需要一个bash脚本,该脚本将获得5个参数,然后根据每个给定参数绘制哈希,例如,输入为: 8 10 15 5 12 输出应为: 8: ######## 10: ########## 15: ############### 5: ##### 12:############ 如果可以使其垂直,则最好查看printf,尤其是%修饰符 我认为它只使用空格填充,因此一个可能的转变是将输出导入tr,用字符替换空格 [编辑]实际上,我链接到的页面在“重复字符(例如打印一行)”下有一个有趣的技巧

我需要一个bash脚本,该脚本将获得5个参数,然后根据每个给定参数绘制哈希,例如,输入为:

8 10 15 5 12
输出应为:

8: ########
 10: ##########
 15: ###############
  5: #####
 12:############

如果可以使其垂直,则最好查看
printf
,尤其是
%
修饰符

我认为它只使用空格填充,因此一个可能的转变是将输出导入
tr
,用
字符替换空格


[编辑]实际上,我链接到的页面在“重复字符(例如打印一行)”下有一个有趣的技巧,值得检查。

对于竖条,您可以使用以下脚本:

#!/bin/bash

max=0
for v in $@; do
  if (( $v > $max )); then max=$v; fi;
done

printf "%d  %d  %d  %d  %d\n" $1 $2 $3 $4 $5
for (( i=1; i<=$max; i++ )); do
  for j in $@; do
    if (( $j >= $i )); then
      printf "#  "
    else
      printf "   "
    fi
  done
  printf "\n"
done
#/bin/bash
最大值=0
以$@表示的v;做
如果($v>$max));那么max=$v;fi;
完成
printf“%d%d%d%d%d\n”$1$2$3$4$5
对于((i=1;i=i));然后
printf“#”
其他的
printf“”
fi
完成
printf“\n”
完成
通过python脚本

#!/usr/bin/python
import re
with open('/path/to/input/file', 'r') as f:
    f = f.read()
    for i in re.finditer(r'\d+', f):
        print i.group()+': '+int(i.group())*'#'

你能分享一下你到现在为止尝试过的吗?