Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Есть возможность раскрасить вывод команды find после применения -exec?  (Прочитано 586 раз)

0 Пользователей и 1 Гость просматривают эту тему.

adawdp

  • Автор темы
  • Гость
2016 Feb 04; 09:33 AM; Oakville, ON, Canada.

— Положим имеем такую обычнейшую команду:

Код: Bash
  1. find . -maxdepth 1 -type f -exec grep  BlahBlah  '{}' \; | sed G

Есть ли вообще способ сделать её цветной, положим как вывод просто команды grep?

— Хотелось бы облегчить просмотр одного sed G не хватает :(

— Вообще есть ли рецепт к раскраске любого вывода команды терминала?

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 5664
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Если убрать | sed G то он и должен быть цветной. Ну или sed’ом вставлять управляющие коды (смотреть =>)#!/bin/bash
#
#   This file echoes a bunch of color codes to the
#   terminal to demonstrate what's available.  Each
#   line is the color code of one forground color,
#   out of 17 (default + 16 escapes), followed by a
#   test use of that color on all nine background
#   colors (default + 8 escapes).
#

T='gYw'   # The test text

echo -e "\n                 40m     41m     42m     43m\
     44m     45m     46m     47m";

for FGs in '    m' '   1m' '  30m' '1;30m' '  31m' '1;31m' '  32m' \
           '1;32m' '  33m' '1;33m' '  34m' '1;34m' '  35m' '1;35m' \
           '  36m' '1;36m' '  37m' '1;37m';
  do FG=${FGs// /}
  echo -en " $FGs \033[$FG  $T  "
  for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
    do echo -en "$EINS \033[$FG\033[$BG  $T  \033[0m";
  done
  echo;
done
echo
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

adawdp

  • Автор темы
  • Гость
2016 Feb 04; 11:57 AM

— Спасибо, Azure, с кодами понятно это как строку приглашения раскрасить:
Код: Bash
  1. PS1="\[\033[1;33;1;32m\]\u@\h:\[\033[1;31m\]\w$ \[\033[0m\]\[\033[0m\]"

— Ещё echo более менее легко раскрашивается кодами, это я пробовал… Мне что-то мерещилось некое универсальное средство  существует:(…

— В данной команде у меня grep не цветной, потому я и примерил sed G, ну чтобы как-то более читабельно было…

— Значит есть где-то возможность включить раскраску grep, простой grep у меня цветной.

Оффлайн rtupe

  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
1. Возможности раскраски любой команды нет и не будет, поскольку это зависит от команды.

2. Не используйте "exec" в find. Есть xargs

3 И да - есть zsh и лично у меня так
  find ... X0 ...
  find ... G ...

где X0 и G - глобальные альясы (zsh). И да. Все в цвете ;)

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 5664
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Это?
Код: Bash
  1. find . -maxdepth 1 -type f -exec grep --color=auto BlahBlah  '{}' \;
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн rtupe

  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Это моя звизженная где-то миллион лет назад функция. СУПЕР-удобная.

ff () {
        if test $# = 2
        then
                noglob find "$1" -iname "*$2*" | grep --colour=auto -i --color=auto "$2"
        elif test $# = 1
        then
                noglob find . -iname "*$1*" | grep --colour=auto -i --color=auto "$1"
        else
                echo "Usage: ff [dir] filename-part" >&2
        fi
}

Оффлайн jura12

  • Старожил
  • *
  • Сообщений: 1183
  • debian 9, manjaro
    • Просмотр профиля
ccze раскрашивает хорошо логи и любые тексты. например service --status-all|ccze -A|less -R
сопротивление бессполезно

adawdp

  • Автор темы
  • Гость
Azure,
Это?
Код: Bash
  1. find . -maxdepth 1 -type f -exec grep --color=auto BlahBlah  '{}' \;
— Да, спасибо, это, конечно работает.

— Всем спасибо, глобальные принципы с раскраской я понял, приведенные примеры сохраню и попробую.

 

Страница сгенерирована за 0.082 секунд. Запросов: 24.