Окрашивание вывода при использовании пр - PullRequest
1 голос
/ 11 октября 2019

Я запускаю несколько команд, которые возвращают списки строк и получают их вывод в различных переменных.

Затем я хочу написать вывод другой команды рядом. Для этого я использую pr.

Пример кода, который я делаю:

#!/bin/bash

i1=$(echo -e "test11\ntest12")
i2=$(echo -e "test21\ntest22\ntest23")
i3=$(echo -e "test31\ntest32\ntest33")

pr -T -m <(echo "$i1") <(echo "$i2") <(echo "$i3")

, который дает хороший вывод:

test11          test21          test31
test12          test22          test32
                test23          test33

Но как только я пытаюсь раскрасить вывод (используя коды ASCII), я начинаю получать плохо выровненные столбцы.

#!/bin/bash

i1=$(echo -e "test11\n\033[1mtest12\033[0m")
i2=$(echo -e "test21\ntest22\ntest23")
i3=$(echo -e "test31\ntest32\ntest33")

pr -T -m <(echo "$i1") <(echo "$i2") <(echo "$i3")

дает

test11          test21          test31
test12      test22          test32
                test23          test33

с помощью "test12 "(слово первого столбца и второй строки) раскрашено, как и ожидалось, но другие столбцы смещены.

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

Есть идеи, как заставить цвета работать с pr? В качестве альтернативы, есть ли какие-либо идеи о том, как напечатать три раскрашенных файла в трех выровненных столбцах?

...