Existe algum utilitário colorizador que possa obter a saída do comando e colori-lo de acordo com o esquema predefinido?

7

Eu já sei que posso colorir a saída com o grep e com um par de jeitos diferentes. Eu quero ter algo como supercat , mas para comandos (e não que mortos).

The application Supercat colors any input text based on the type of file and a set of rules associated with the file type. The rules are used to match strings found in the input text and can be specified using simple characters or strings, regular expressions and special time-formatting rules.

Digamos que eu esteja escrevendo magiccommand gcc blah blah , este comando mágico entende que ele precisa colorir a saída do gcc e escolher um modelo. Agora, estou disposto a magiccommand mvn foo bar e esse comando usa outra regra apropriada. Pontos de bônus para regras legíveis - sem insanidade de "s/^GET.*$/\x1b[31m&\x1b[0m/" sed.

    
por om-nom-nom 31.05.2013 / 21:05

4 respostas

11

Você poderia usar uma ferramenta como grcat / grc (onde o primeiro é a ferramenta e o segundo o front-end).

grc will execute command command with optional parameters [args] piping its stdout or stderr into grcat, with apropriate configuration file.

Por exemplo

    
por 31.05.2013 / 21:12
3

source-highlight

Você também pode achar interessante source-highlight lançado sob o GNU .
Você pode adicioná-lo como alias, por exemplo no seu .bash_aliases com algo como a linha abaixo.

alias Cat='source-highlight --out-format=esc -o STDOUT -i'  
Cat myfile.c # or myfile.xml ...

Ou você pode fazer um alias semelhante (sem o -i no final para ter a possibilidade de canalizar )

alias PCat='source-highlight --out-format=esc -o STDOUT '
tail myfile.sh | PCat     # Note the absence of the '-i'

Trecho de apt-cache show source-highlight :

Description-en: convert source code to syntax highlighted document.
This program, given a source file, produces a document with syntax highlighting.
It supports syntax highlighting for over 100 file formats, including major programming languages, markup formats, and configuration file formats. For output, the following formats are supported: HTML, XHTML, LaTeX, Texinfo, ANSI color escape sequences, and DocBook

Entre as opções que você pode ler em man source-highlight , o -s

-s, --src-lang=STRING source language (use --lang-list to get the complete list). If not specified, the source language will be guessed from the file extension.

--lang-list list all the supported language and associated language definition file

    
por 07.05.2015 / 15:08
0

O problema com grc é que você não pode canalizar para ele, mas você pode canalizar para o programa grcat subjacente. Então, primeiro:

Instale grcat

sudo apt-get install grc

Agora execute:

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

Onde conf.myusername contém:

regexp=SEVERE
colours=on_red
count=more
    
por 01.03.2016 / 01:02
0

Experimente ccat

$ ccat file.yml $ ccat file.py $ ccat file.rb $ ccat file.go ...

    
por 09.11.2016 / 10:36