O seguinte comando pode ser encapsulado em um arquivo em lotes:
grep --color=always -E "^|$2" "$1"|less -SFXER
O parâmetro $1
é o nome do arquivo e $2
é o padrão de pesquisa. Pontos a serem observados:
-
grep -E
(ouegrep
) permite corresponder a mais de um padrão de pesquisa; - correspondendo a
^
(início da linha) garante que todas as linhas sejam listadas; - a correspondência de
$2
faz com que a string de pesquisa seja destacada; -
grep --color=always
copia as seqüências de escape de destaque para o pipe; -
less -R
faz com queless
reproduza o realce em vez de mostrar a sequência de escape.
Não é a melhor solução, mas algum tipo de resposta. Observe que o comando listará todas as linhas, destacando o padrão, enquanto less -p
omite as linhas à frente da primeira correspondência: para reproduzir isso, você precisará usar sed
.