Пропускаемая команда для печати в цвете?

Обычно я делаю общую фильтрацию по строкам следующим образом:

criterion = lambda row: row['countries'] not in countries
not_in = df[df.apply(criterion, axis=1)]
7
задан TenorB 10 May 2012 в 23:03
поделиться

4 ответа

Я не знаю ни о какой утилите для цветной печати себя, но можно сделать это легко с функцией оболочки как это:

# colorize stdin according to parameter passed (GREEN, CYAN, BLUE, YELLOW)
colorize(){
    GREEN="\033[0;32m"
    CYAN="\033[0;36m"
    GRAY="\033[0;37m"
    BLUE="\033[0;34m"
    YELLOW="\033[0;33m"
    NORMAL="\033[m"
    color=\${1:-NORMAL}
    # activate color passed as argument
    echo -ne "`eval echo ${color}`"
    # read stdin (pipe) and print from it:
    cat
    # Note: if instead of reading from the pipe, you wanted to print
    # the additional parameters of the function, you could do:
    # shift; echo $*
    # back to normal (no color)
    echo -ne "${NORMAL}"
}
echo hi | colorize GREEN

, Если Вы хотите проверить другие цвета, смотрите на этот список . Можно добавить поддержку любого цвета оттуда, просто создав дополнительную переменную в этой функции с корректным именем и значением.

10
ответ дан elias 22 October 2019 в 14:30
поделиться

Я создал эту функцию, которую я использую в сценариях удара.

# Function to echo in specified color
echoincolor () {
    case $1 in
        "red") tput setaf 1;;
        "green") tput setaf 2;;
        "orange") tput setaf 3;;
        "blue") tput setaf 4;;
        "purple") tput setaf 5;;
        "cyan") tput setaf 6;;
        "gray" | "grey") tput setaf 7;;
        "white") tput setaf 8;;
    esac
    echo "$2";
    tput sgr0
}

Затем я просто называю его как это echoincolor green "This text is in green!"

, Кроме того , использую printf

# Function to print in specified color
colorprintf () {
    case $1 in
        "red") tput setaf 1;;
        "green") tput setaf 2;;
        "orange") tput setaf 3;;
        "blue") tput setaf 4;;
        "purple") tput setaf 5;;
        "cyan") tput setaf 6;;
        "gray" | "grey") tput setaf 7;;
        "white") tput setaf 8;;
    esac
    printf "$2";
    tput sgr0
}

Затем просто вызов он как это colorprintf green "This text is in green!"

, Примечание , echo обеспечивает запаздывающую новую строку, в то время как printf не делает.

3
ответ дан HarlemSquirrel 22 October 2019 в 14:30
поделиться

Я использую этот старый сценарий, hilite.pl имен, взятый от сети, уже с "неизвестным автором" строка!

#!/usr/bin/perl -w
### Usage: hilite <ansi command> <target string>
### Purpose: Will read text from standard input and perform specified highlighting
### command before displaying text to standard output.
### License: GNU GPL
# unknown author 

$|=1; # don't buffer i/o
$command = "$ARGV[0]";
$target = "$ARGV[1]";
$color = "\e[" . $command . "m";
$end = "\e[0m";

while(<STDIN>) {
    s/($target)/$color$1$end/;
    print 

Я использую этот старый сценарий, hilite.pl имен, взятый от сети, уже с "неизвестным автором" строка!

[110]

Затем я могу использовать его в каналах, к выводу журнала "hilite" или другим вещам, с помощью regexp/PCRE:

 echo 'hello color world!!' | hilite.pl 34 "[Hh]el[^ ]*" | hilite.pl 43 .orld | hilite.pl 32 "\scolor\s"

Это нарисует привет в синем, раскрасит зеленый и мир в желтом фоне

, Вы видите список цветов с (можно развернуть выражение удара до {01.. 255}, если Вы хотите):

for i in {01..10}  {30..49} {90..110}  ; do echo $i | hilite.pl $i $i ; done
; }

Затем я могу использовать его в каналах, к выводу журнала "hilite" или другим вещам, с помощью regexp/PCRE:

 echo 'hello color world!!' | hilite.pl 34 "[Hh]el[^ ]*" | hilite.pl 43 .orld | hilite.pl 32 "\scolor\s"

Это нарисует привет в синем, раскрасит зеленый и мир в желтом фоне

, Вы видите список цветов с (можно развернуть выражение удара до {01.. 255}, если Вы хотите):

for i in {01..10}  {30..49} {90..110}  ; do echo $i | hilite.pl $i $i ; done
1
ответ дан muru 22 October 2019 в 14:30
поделиться

Существует намного более изящный ответ, чем любой из них:

sudo apt-get install grc

(который также устанавливает grcat)

Теперь выполнитесь:

echo "[SEVERE] Service is down" | grcat ~/conf.username

, Где conf.myusername содержит:

regexp=SEVERE
colours=on_red
count=more

(по некоторым причинам я не могу найти право regexp для "всего между кавычками")

1
ответ дан Sridhar Sarnobat 22 October 2019 в 14:30
поделиться
Другие вопросы по тегам:

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