Existe um comando que pode ser usado para realçar facilmente (com cores, texto em negrito ou invertido costas / primeiro plano) seqüências específicas em stdin enquanto passa toda a sequência para stdout? Estou pensando em construí-lo , mas prefiro usá-lo se ele já existir. Algumas características desejáveis:
- Seqüências de destaque separadas são destacadas de maneira diferente, de maneira automática. Por exemplo, a primeira corda será destacada em vermelho, a segunda em verde e a terceira em azul sem configuração manual .
- Detecta o suporte de cores e volta a métodos de realce em negrito / invertido / outros, quando disponíveis.
- Permite a correspondência de expressões regulares e cadeias literais.
- De preferência, faça algo inteligente se as correspondências se sobreporem, como "foobar" e "barbar".
- Nada é modificado entre stdin e stdout, exceto pela adição de códigos de cores.
Respostas:
Talvez o corante genérico de Radovan Garabík (grc) ? Ele espera um arquivo de configuração como argumento e funciona com o regexp. Portanto, não completamente sem a configuração, mas você pode usar a substituição do processo do processo (
<(list)
); portanto, sem qualquer configuração manual :-)fonte
grc
tem um script auxiliar:grcat
. Aqui está um exemplo de colorir todas as letras maiúsculas em vermelho. Etapa 1: Configure o arquivo de configuração:printf "regexp=[A-Z]\ncolours=red\n" > ~/.grc/red-caps
Etapa 2; Use-o:echo Hello World | grcat red-caps
... A página de manual indica três diretórios de configuração que ele pesquisa e sugere (?) Que o arquivo de configuração pode ser um caminho absoluto, mas esse último método de encontrar o arquivo de configuração funciona apenas com caminhos relativos para mim (grc versão 1.3)Sed para o resgate!
Você pode melhorar isso (como realmente precisa), mas funciona muito bem.
Por uma questão de simplicidade, o hilight aceita dois argumentos (primeiro a partida, depois a cor). Nesse script, o atributo é sempre em negrito
Leia man console_codes (Graphic Rendition) para ver as secuências de escape de cores ou tente isso
Tem desvantagens importantes, pois o uso deste funciona:
mas isso não é de todo:
porque [: digit:] encontra os números nas secuências de escape de suprimentos anteriores.
Algo como:
sempre funcionará como exceção.
Usando o comando time, encontrei esse aumento em quatro vezes o tempo decorrido, o que não é muito.
Você pode substituir o comando sed por qualquer outro analisador que desejar ou atenda às suas necessidades (awk, etc ...)
fonte
Pode-se também usar egrep com padrão que corresponde a cada linha em caracteres não imprimíveis, como:
fonte
clide funciona bem. Eu o uso no RHEL 6.2, do repositório EPEL
fonte
Se a sua versão do
grep
vem com coloração, você pode usar a alteração regexp para fazer com que o grep destaque o texto e também corresponda a todas as linhas para que nada seja excluído. O seguinte deve fazer o truque:fonte
Como você mencionou no link,
grep --color=always
funciona apenas para um padrão. Dito isto, não acredito que essa ferramenta exista.fonte
Eu uso http://em.readthedocs.org/ . Fácil de instalar em várias plataformas por causa do Python. Simples e funciona bem.
fonte
em
, reformule sua resposta para ficar claro que você não é um usuário, mas o autor da ferramenta sugerida.