Замена номера одним и тем же значением (числом) одного символа

Я должен найти все типы файлов, используя file -b $(find . -type f) , сортировать их в уникальные категории и распечатывать топ-4 большинства категорий, где число заменяется равным числом «#». Результат должен выглядеть примерно так:

  8 empty : ######## 6 ASCII text : ###### 3 Vim swap file, version 7.4 : ### 1 UTF-8 Unicode text : # 

Я не могу понять, как распечатать количество файлов в каждой категории как «#».

Я хочу получить номер в каждой строке в качестве значения и поставить в конце то же количество «#».

  • Условие скрипта Bash всегда передается, даже когда grep не должен возвращать ничего
  • Объединение файлов в несколько подкаталогов соответствия
  • Как я могу использовать команды bash, если тесты и найти команды вместе?
  • SSH на несколько серверов, выполняющих несколько команд
  • Сценарий, чтобы избежать запуска повторных предупреждений из файла журнала
  • Сценарий оболочки: если несколько условий
  • Сравнить 2 столбца в 2 разных файлах
  • Как искать определенные разделы файла, а затем извлекать только соответствующую информацию в этом разделе?
  • One Solution collect form web for “Замена номера одним и тем же значением (числом) одного символа”

    Чтобы ответить на ваш основной вопрос «как символизировать число N с последовательностью N символов, вот команда оболочки, которая будет делать именно это:

     n=17 # Number to translate to a sequence printf "%${n}s" '' | tr ' ' '#' 

    (альтернативный синтаксис: printf '%*s' "$n" '' | tr ' ' '#' , есть другие альтернативы, вы получаете идею)

    Он создает пустую строку из n пробелов (часть printf ), а затем преобразует каждое пространство в нужный символ ( tr часть).

    Предполагая, что у вас есть команда count_files которая выводит список, который вы включили в свой вопрос, эта команда может быть использована следующим образом:

     count_files \ | while read n type; do printf '%4d %-30s %s\n' "$n" "$type" "$(printf "%${n}s" '' | tr ' ' '#')" done 

    … и вы получите следующее:

      8 empty ######## 6 ASCII text ###### 3 Vim swap file, version 7.4 ### 1 UTF-8 Unicode text # 
    Linux и Unix - лучшая ОС в мире.