Вывод терминала формата для показа склонный - получает ошибки обновления КРАСНОГО цвета

Они должны работать:

awk '{if(n==41){n=0;print $0}else{printf "%s ",$0;n++}}' data.txt 

или

awk '{if(NR % 42 == 0){print;}else{printf "%s ",$0}}' data.txt

или

perl -ne 'if($. % 42){chomp; print "$_ "}else{ print;}' data.txt 

или

perl -pne 's/\n/ / if $. % 42' data.txt
2
14.11.2014, 01:44
2 ответа

Я написал небольшой скрипт, который раскрасит любую строку, которую вы ему дадите:

#!/usr/bin/env perl
use Getopt::Std;
use strict;
use Term::ANSIColor; 

my %opts;
getopts('hic:l:',\%opts);
    if ($opts{h}){
      print<<EoF; 
Use -l to specify the pattern(s) to highlight. To specify more than one 
pattern use commas. 

-l : A Perl regular expression to be colored. Multiple expressions can be
     passed as comma separated values: -l foo,bar,baz
-i : makes the search case sensitive
-c : comma separated list of colors;

EoF
      exit(0);
    }

my $case_sensitive=$opts{i}||undef;
my @color=('bold red','bold blue', 'bold yellow', 'bold green', 
           'bold magenta', 'bold cyan', 'yellow on_magenta', 
           'bright_white on_red', 'bright_yellow on_red', 'white on_black');
if ($opts{c}) {
   @color=split(/,/,$opts{c});
}
my @patterns;
if($opts{l}){
     @patterns=split(/,/,$opts{l});
}
else{
    $patterns[0]='\*';
}

# Setting $| to non-zero forces a flush right away and after 
# every write or print on the currently selected output channel. 
$|=1;

while (my $line=<>) 
{ 
    for (my $c=0; $c<=$#patterns; $c++){
    if($case_sensitive){
        if($line=~/$patterns[$c]/){
           $line=~s/($patterns[$c])/color("$color[$c]").$1.color("reset")/ge;
        }
    }
    else{
        if($line=~/$patterns[$c]/i){
          $line=~s/($patterns[$c])/color("$color[$c]").$1.color("reset")/ige;
        }
      }
    }
    print STDOUT $line;
}

Если вы сохраните его как color в каталоге, который находится в вашем $PATH и сделаете его исполняемым (chmod +x /usr/bin/color), вы можете раскрашивать все, что захотите:

sudo apt-get install nonexistent-package 2>&1 | color -l "E:,error"

2>&1 нужно, чтобы перенаправить сообщения об ошибках на стандартный выходной сигнал.

2
27.01.2020, 22:05

Вы можете использовать Hhlighter. Вам понадобится GIT и ACK (возможно, ACK-GREP в зависимости от вашего дистрибутива).

git clone https://github.com/paoloantinori/hhighlighter.git

Вы можете редактировать свой файл .bashrc двумя способами. Вы можете добавить путь к вашему файлу h.sh, как это:

. ~/hhlighter/h.sh

или вы могли бы просто скопировать и вставить функцию h () в .bashrc. В любом случае, вам придется выйти из системы и вернуться к перезапуску Bash или вы можете запустить следующую команду:

source ~/.bashrc

Пример использования:

sudo apt-get dist-upgrade -y | h -i error

или

sudo apt-get dist-upgrade -y | h -i error:

Нажмите здесь для получения дополнительной информации: Github.com/paoloantinori / Hhighlighter

1
27.01.2020, 22:05

Теги

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