bash: раскрасить второй столбец вывода

скажем, у меня есть вывод из ls:

$ ls -lAhF /bin -rwxr-xr-x 1 root root 905K Apr 10 2010 bash* -rwxr-xr-x 3 root root 31K Dec 26 2011 bunzip2* -rwxr-xr-x 1 root root 505K Nov 15 2010 busybox* -rwxr-xr-x 3 root root 31K Dec 26 2011 bzcat* lrwxrwxrwx 1 root root 6 Jun 24 2012 bzcmp -> bzdiff* ... 

Я ищу способ, как я могу раскрасить второй столбец. Я знаю, как использовать sed для раскрашивания любого шаблона, но я не знаю, как раскрасить определенный столбец. В принципе, мне нужно вставить '\033[0;31m' после первого пробела и '\033[0m' infront второго пространства. Или, может быть, есть намного более элегантный способ?

2 Solutions collect form web for “bash: раскрасить второй столбец вывода”

С GNU grep при условии, что он был создан с поддержкой PCRE :

 ls -l | GREP_COLORS='mt=1;41;37' grep --color -P '^\S+\s+\K\S+' 

С sed :

 on=$(tput setaf 7; tput setab 1; tput bold) off=$(tput sgr0) ls -l | sed "s/[^[:blank:]]\{1,\}/$on&$off/2" 

Обратите внимание, что использование setaf предполагает, что терминал поддерживает escape-последовательности ANSI color, поэтому вы можете также записать жесткий код, что сделало бы его менее подробным. Здесь с ksh93 (также bash и zsh ):

 on=$'\e[1;47;37m' off=$'\e[m' 

Обобщение на n- й столбец:

 n=5 GREP_COLORS='mt=1;41;37' grep --color -P "^(\S+\s+){$(($n-1))}\K\S+" sed "s/[^[:blank:]]\{1,\}/$on&$off/$n" 

Рекомендации

  • tput – использование, набор и цвета
  • Bash Prompt HOWTO – 6.5. Цвета и перемещение курсора с помощью tput
  • Bash Prompt HOWOT – 6.1. Цвета

Что-то вроде этого?

 awk -v on="$(tput bold)" -v off="$(tput rmso)" '{ $2=on $2 off }; 1' 

Изменить: используйте соответствующие подкоманды tput .

  • команда watch не показывает цвета для статуса git
  • Переопределение цвета оттенка
  • сохранение цвета при прохождении через yaourt через сортировку
  • Как отключить стилизацию на страницах руководства?
  • Цветные страницы man, не работающие над gentoo
  • Где взять цветные схемы Кейт?
  • Как раскрасить «корень» красным цветом в CentOS?
  • Как я могу передать цветной разностный вывод на меньшее?
  • Interesting Posts

    что является разделителем по умолчанию для опции sort -k

    Расширенное использование / команда оболочки

    Сборка Apache + mod_ssl не связана с моей сборкой OpenSSL

    Как использовать SSD для кеширования, поэтому мои жесткие диски могут вращаться?

    Дождитесь завершения загрузки нескольких файлов

    Найти уникальные значения из поиска

    Как предотвратить использование Apache слишком большого количества ОЗУ

    Почему unsetenv () не изменяет / proc / pid / environ?

    Лучший способ grep большого двоичного файла?

    Когда исполняемые файлы не дублируются,

    Почему добавление не-VLAN-интерфейса к мосту нарушает VLAN-интерфейсы?

    Передать переменную Shell в awk

    GNOME 3 – нижняя панель скрывается – как ее отобразить или изменить поведение

    Как я могу запустить 2 dd параллельно на одном устройстве

    Есть ли какая-либо команда Linux для создания нового файла в папке и автоматического создания этой папки, если она не существует?

    Linux и Unix - лучшая ОС в мире.