форматирование bash вывод скрипта (табуляции или таблицы или пробелы, выравнивание строк / столбцов) - PullRequest
0 голосов
/ 20 января 2020

Я хотел бы иметь четные столбцы. Я пытаюсь использовать вкладки, чтобы выровнять столбцы, но данные имеют разные размеры, поэтому они не всегда выровнены. Я попытался использовать printf% 5s (% 10s, et c.), Чтобы сделать каждую запись определенной ширины, которая не очень хорошо работала, поэтому я отказался от этой идеи.

Это то, что я получил прямо сейчас :

это заголовок:

printf "===DATE=== \t # \t EP \t SLOT \t EXP. TIME \t LOCAL TIME \t DIFFS \t HASH \t HEIGHT \t SHLXPR \t POOLTL \t BSXP \t BPTL \t BLKS \t CPU\n"

это данные:

printf "$DATE \t $COUNTER \t $EPOCH \t $LATEST_SLOT \t $LAST_BLOCK_TIME \t $TIME \t $TDIFF \t $LAST_HASH \t $LATEST_BLOCK \t $shelleyLastBlockCount \t $MAJOR_TIP \t $BEHIND_SHELLEY \t $BEHIND_POOLTOOL \t $MULTIBLOCK \t $CPU_USE \n"

это выглядит так:

===DATE===      #    EP   SLOT      EXP. TIME      LOCAL TIME     DIFFS     HASH      HEIGHT    SHLXPR    POOLTL    BSXP      BPTL      BLKS      CPU

2020-01-20      2    38   1020      19:47:37       19:47:37       0s        96e5e     115985    115985    115983    0    -2   0002      23.1
2020-01-20      3    38   1026      19:47:49       19:47:51       -2s       d4281     115986    115986    115986    0    0    0001      0
2020-01-20      4    38   1040      19:48:17       19:48:19       -2s       eabd8     115987    115987    115986    0    -1   0001      10

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

1 Ответ

0 голосов
/ 21 января 2020

Если вы можете накапливать результаты, вы можете использовать для этого команду paste

paste <( echo $DATE_RECORDS ) <( echo $COUNTER_RECORDS ) <( echo $EPOCH_RECORDS ) ПРИМЕЧАНИЕ: записи должны разделяться символом новой строки.

Если вам нужно печатать как вы go тогда решения с stati c шириной поля (как при использовании printf) являются единственным вариантом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...