Não tenho certeza se isso é devido a um recurso ou apenas algum efeito colateral oculto, mas isso funciona no GNU grep
2.11:
grep --color 'an\|' test.txt
Existe um comando que destaca uma determinada expressão no texto?
Estou procurando algo como a função 'pesquisa' em menos, mas com saída de texto normal no stdout, em vez do less
viewer.
Exemplo:
$ cat test.txt | highlight "an"
Prospects for an orderly NATO withdrawal from Afghanistan suffered two setbacks as President Hamid Karzai demanded limits on United States troops and the Taliban halted peace talks.
Ele pode usar cores ou qualquer outro meio para destacar a expressão regular especificada.
Não tenho certeza se isso é devido a um recurso ou apenas algum efeito colateral oculto, mas isso funciona no GNU grep
2.11:
grep --color 'an\|' test.txt
ack tem uma opção --passthru
que fará isso:
ack --passthru an test.txt
some_command | ack --passthru an -
Você pode experimentar este meu script. Ele permitirá que você especifique um arquivo ou receba uma entrada padrão. Você pode definir uma expressão regular do Python para o texto que deseja destacar. o texto realçado é padronizado para neon verde (ei, eu uso um fundo preto!) Mas você pode alterar o código de cor ANSI .
#!/usr/bin/env python
import sys
import re
def highlight_text(text,pat):
def replacement_funk(matchobj): return '\x1b[42m%s\x1b[0m'%matchobj.group(0)
return re.sub(pat,replacement_funk,text)
if __name__ == '__main__':
if len(sys.argv) == 2:
input = sys.stdin
pat = sys.argv[1]
elif len(sys.argv) == 3:
input = open(sys.argv[2])
pat = sys.argv[1]
else:
sys.stderr.write("colorme pattern [inputfile]")
text = input.read()
print highlight_text(text,pat)
Aqui está um exemplo.
blessburn@blessburn:/tmp$ cat test.txt | ./colorme.py an
As perspectivas para uma retirada ordenada da OTAN da África do Sul e um sofreram dois contratempos como o presidente Hamid Karzai dem an > limites impostos às tropas dos Estados Unidos e d o Talib an interromperam as negociações de paz.
blessburn@blessburn:/tmp$ ./colorme.py '(Af.*? |NA[\w]{2})' test.txt
As perspectivas de uma retirada ordenada da OTAN do Afeganistão sofreram dois reveses como Presidente Hamid Karzai exigiu limites para as tropas dos Estados Unidos e o Taleban suspendeu as negociações de paz.
$cat test.txt | grep --colour=auto -C 100000 an
"cor" também funciona. Você também pode definir um apelido para fazer o grep sempre usar a opção:
alias grep='grep --colour=auto -C 100000'
Coloque o acima em /etc/profile.d/ em algum lugar ou em seu .bashrc ou qualquer outra coisa.
Tags bash highlighting