根据给定输入绘制输出条

时间:2014-10-12 13:16:22

标签: bash shell

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

8 10 15 5 12

输出应为:

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

如果可以使它垂直,那就更好了

3 个答案:

答案 0 :(得分:1)

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

#!/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

答案 1 :(得分:0)

查看printf here,尤其是%修饰符。

我认为它只使用空格填充,因此可能的转变是将输出传递到tr以用#字符替换空格。

[edit]实际上,我链接到的页面在&#34; 重复一个字符(例如打印一行)&#34;下有一个有趣的技巧。这值得检查。

答案 2 :(得分:0)

通过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())*'#'