Создание текста с отступом с помощью bash
Я хочу распечатать список на экран в удобочитаемом виде. Я использую цикл, чтобы пройти через каждый элемент и создать новый список, который отформатирован запятыми и новыми строками. Проблема в том, что в первой строке вывода я хочу заголовок. Например, Я хочу напечатать что-то вроде этого:
List: red, green, blue, black, cars,
busses, ...
проблема заключается в создании отступа во второй и последующих строках. Я хочу, чтобы вмятина была заданной длины. Поэтому проблема сводится к созданию пустой строки a учитывая длину. То есть, я хочу функцию,create_empty_line_of_length
, который выводит заданное количество пробелов.
length=5
echo "start:$(create_empty_line_of_length $length) hello"
выход в этом случае должен быть:
start: hello
кто-нибудь знает, как это сделать?
3 ответов
будет
yes ' ' | head -7 | tr -d '\n'
измените '7'на свой номер.
Возможно, вам стоит взглянуть на
man fmt
также.
printf '%7s'
вероятно, самый эффективный способ сделать это.
его оболочка, встроенная большую часть времени, и если нет /usr/bin/printf существует как резерв от coreutils.
так
printf '%7s%s\n%7s%s\n' '_' 'hello' '_' 'world'
производит
_hello
_world
( я использовал _ вместо космоса, но космос тоже работает, потому что баш понимает '' )
Не уверен, что это поможет вам http://unstableme.blogspot.com/2008/12/awk-formatting-fields-into-columns.html