Я запускаю несколько команд, которые возвращают списки строк и получают их вывод в различных переменных.
Затем я хочу написать вывод другой команды рядом. Для этого я использую 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
? В качестве альтернативы, есть ли какие-либо идеи о том, как напечатать три раскрашенных файла в трех выровненных столбцах?