Чередование цветов строк в терминале

В этом случае одним из возможных решений является чтобы указать ширину полей в начальном разделе:

awk 'BEGIN {FIELDWIDTHS = "16 11 6 7"} 
    $4 ~/[^ ]/ {print $1 $4}' 

Ширина поля может быть подсчитана вручную, но для сложных заголовков я предпочитаю начинать с

 head -1 f | grep -Po '.*? (?=\S|$)' | awk '{print length}'

ОБНОВЛЕНИЕ: ... или чтобы иметь дело с начальные и конечные пробелы в заголовке:

 head -1 f | grep -Po '(^ *|\S).*?( (?=\S)|$)' | awk '{print length}'
2
05.01.2017, 16:15
2 ответа

Возможно, вы захотите найти эмулятор терминала, который поддерживает фоновое изображение в мозаичном (т.е. повторяющемся, не масштабируемом / растянутом) режиме, и создать себе такое фоновое изображение.

Главный недостаток заключается в том, что он не будет работать, если вы увеличите масштаб терминала, но он может отлично работать, если у вас есть определенный любимый размер шрифта, который вы всегда используете.

Не забывайте о заполнении терминала. Например. в случае эмуляторов на основе VTE (и многих других) по умолчанию используется отступ в 1 пиксель вокруг всей области символьных ячеек. Если высота вашего шрифта составляет, скажем, 20 пикселей, вы должны создать изображение размером 1x40 с самым верхним пикселем цвета 1, затем 20 пикселей цвета 2, затем еще 19 пикселей цвета 1. Это, конечно, при условии, что эмулятор выравнивает фоновое изображение вверху.

Среди эмуляторов терминала, основанных на последней версии VTE, Terminix [обновление: теперь он называется Tilix] и Xfce4-terminal (версия 0.8.x) поддерживают фоновые изображения, вы должны попробовать их, чтобы увидеть, предлагают ли они такие плитки. Если нет, то я почти уверен, что их авторы будут готовы реализовать это (просто укажите им на эту страницу :)). Старые версии VTE явно поддерживали фоновое изображение, но я не рекомендую его использовать из-за множества других ошибок. Терминология и urxvt - это еще несколько возможностей, которые стоит попробовать.

Используя этот подход, я использовал постоянное правое поле в столбце 80.

Обновление: я действительно пробовал это с xfce4-terminal, и он работает, как и ожидалось. Один небольшой недостаток, о котором я не подумал, заключается в том, что фон не прокручивается вместе с контентом при прокрутке назад, что особенно беспокоит (IMO, в остальном круто) попиксельная прокрутка VTE-0.44.

1
27.01.2020, 22:10

Вы можете передать вывод того, что вы хотите раскрасить, небольшому скрипту awk, это не должно слишком сильно снижать производительность. Например:

NR%2 == 0 {
    print "\033[1;36m" $0 "\033[0m"
    next
}

{
    print "\033[1;46;30m" $0 "\033[0m"
}
  1. Поместите это в файл .awk где-нибудь в своем ПУТЬ
  2. Добавьте эту строку в свой .bashrc и повторно выполните его:

     alias ImFabulous = 'myfunc'; myfunc () {eval "$ @ | awk -f MakeItFabulous.awk";} 
     
  3. Попробуйте: $ ImFabulous <ваша команда здесь> .

Например: ImFabulous cat / etc / hosts . Версия, которую я дал, довольно проста, но для ваших больших файлов с таблицами она должна помочь. Вы можете смягчить его, просмотрев цветные escape-последовательности , чтобы они соответствовали вашему типу сказочного. Если вам не нужен псевдоним, вы можете просто ввести следующее: <моя команда> | awk -f MakeItFabulous.awk

1
27.01.2020, 22:10

Теги

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