Как нарисовать линию Divider с названием названия перед отображением вывода

Я написал сценарий, который отображает имя и отдел пользователя, и это работает. Кроме того, я пытаюсь нарисовать разделительную строку с названием заголовка, присваиваемым столбцам по мере необходимости. Я пытаюсь сделать это с помощью printf, но как-то не могу получить его на данный момент .. любая помощь будет оценена.

ниже приведен сценарий и ожидаемый результат.

#!/bin/sh for names in `cat namefile`; do DATA1="`/grid/common/bin/cod -u $names | awk -F: '/Department/ {print $2}'`" DATA2="`/grid/common/bin/cod -u $names | awk -F: '/Name/ {print $2}'`" #printf '%*s\n' "${COLUMN'S:-$(tput cols)}" '' | tr ' ' - printf "%-50s : %10s\n" "$DATA2" "$DATA1" done bash-4.1$ sh Userdetail.sh Karn Kumar : TT, Infra, VM & India Manas . : TT, Infra, VM & India Pranjal Agrawal : TT, Infra, VM & India Rogen Mana : PP OPS-Brazil 

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

  Name Department 

————————————————–

 Karn Kumar : TT, Infra, VM & India Manas . : TT, Infra, VM & India Pranjal Agrawal : TT, Infra, VM & India Rogen Mana : PP OPS-Brazil 

Просто для более подробной информации о команде.

 bash-4.1$ /grid/common/bin/cod -u karn Name: Karn Kumar Title: IT -Staff Systems Engineer Department: TT, Infra, VM & India Mgr: KK LIN Mgr Login: ttlin E-Mail: karn@abc.com Phone: 09999999999 Internal #: Ext: 4848 Cell: 8777880559 Fax: - Building: NOIDA 03 Floor: 03 Room: 3.3.109 

One Solution collect form web for “Как нарисовать линию Divider с названием названия перед отображением вывода”

У вас есть printf "%-50s : %10s\n" "$DATA2" "$DATA1" , который говорит мне, что в итоге у вас будет 63-символьная широкая строка (включая пробелы и printf "%-50s : %10s\n" "$DATA2" "$DATA1" . Таким образом, мы захотим printf "%63s" строку printf "%63s" . Простой подход заключается в том, чтобы печатать пробелы, а затем преобразовывать их все в - так

 printf "%60s" " " | tr ' ' '-' 

Мы, конечно, могли бы использовать более простой подход , но он специфичен для bash . Мы можем, однако, немного изменить его:

 printf "=%.0s" $(seq 1 63) 

Это будет работать в любой оболочке и системе, на которой установлен seq .

Таким образом, напечатайте заголовок перед входом в цикл. Например, вот очень простой случай:

 $ cat ./print_header.sh #!/bin/bash # print header printf "%-50s : %10s\n" "Name" "Department" # print separator printf "=%.0s" $(seq 1 63) # insert a newline printf "\n" # and this is where your for loop would begin. # just for the sake of example, there's only one line printf "%-50s : %10s\n" "John Doe" "IT,Infra" $ ./print_header.sh Name : Department =============================================================== John Doe : IT,Infra 
  • Как добавить несколько строк с переменными в конец сценария bash?
  • Печать столбцов данных, которые
  • Команда SED - char 4: unterminated `s '
  • Получать вывод в форматированном виде
  • Это ошибка, которую zsh печатает полную строку с printf '% .s'?
  • Точная метка времени в Bash с printf (не тривиальная проблема)
  • bash. Почему тип -a выполняет «$ (printf 'a')» и можно ли вернуть исходный псевдоним?
  • Предотвращение наручных цветов
  • Установка позиции столбца в printf
  • Использование printf для раунда 49.765 до 49.77?
  • Отключение параметров упрощения безопасности для среды `nix-shell`
  • Interesting Posts

    Снизьте рейтинг Google Chrome в формате centos 6/7, используя yum

    Внешние устройства ввода планшета для Linux (Inkscape / Gimp)?

    smartctl повторяет неудачные сектора

    Избегайте расширения обратной косой черты с эхом в тире

    Система LFS не загружается или GRUB не может получить доступ / bood / grub при загрузке

    Есть ли утилита оболочки для печати содержимого plist? Предпочтительно для устройства с i-ой задержкой с использованием jail-бит?

    Сканеры уязвимостей и исправления для Solaris

    Как динамически управлять уровнем звука на основе текущих децибел

    Книги / Ресурсы, которые объясняют реализацию ядра TCP / IP

    Состояние пакета ucblogo в debian / raspbian

    Перемещение изображения qcow2 на физический жесткий диск

    пакеты пакетной установки в список

    Преобразование содержимого файла в нижний регистр

    Удалить каталоги Linux, содержащие ТОЛЬКО старые файлы

    Какое самое быстрое решение для виртуализации для Linux?

    Linux и Unix - лучшая ОС в мире.