Как выстроить в линию столбцы с помощью вставки (1)? или как сделать выровненное слияние таблицы строками в оболочке?

Я хочу объединиться, выравнивает таким образом, что объединенные строки выровненные на той же границе. Вставка UNIX (1) делает это приятно, когда строки, которые все встречают на той же границе вкладки, но когда строки отличаются по размеру (в файле, в который объединяются строки), текст выходят неловкие.

Пример вставки (1), который имеет желаемый эффект:

$ echo -e "a\nb\nccc\nd" | paste - -
a       b
ccc     d

Пример вставки (1) с нежелательным эффектом:

$ echo -e "a\nb\ncccccccccccc\nd" | paste - -
a       b
cccccccccccc    d

Отметьте, как 2-й столбец приводит в порядок не строку. Я хочу, чтобы 'b' выстроился в линию с 'd', который требует дополнительной вкладки. К сожалению, я полагаю, что это - предел для утилиты вставки, поэтому если у кого-либо есть какая-либо идея того, как получить желаемый эффект выше, я хотел бы услышать его.

9
задан snap 3 June 2010 в 17:13
поделиться

2 ответа

Проверьте утилиту column...

$ echo -e "a\nb\ncccccccccccc\nd" | paste - - | column -t
a             b
cccccccccccc  d
10
ответ дан 4 December 2019 в 15:12
поделиться

Вы можете использовать утилиту printf для создания форматированного вывода, используя те же спецификаторы формата, что и printf . С помощью спецификаторов формата вы можете указать минимальную ширину поля. Например:

printf "%30s%30s\n" "Alpha" "Bravo"
1
ответ дан 4 December 2019 в 15:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: