Uso molto l'opzione -colour di grep, ma spesso uso anche meno. Come posso ridurre i risultati di grep a meno e preservare la colorazione. (O è possibile?)
grep "search-string" -R * --colour | less
MODIFICARE:
Sto cercando una soluzione diretta o qualcosa di equivalente a questo.
Quando esegui semplicemente grep --color
implica grep --color=auto
che rileva se l'output è un terminale e in tal caso abilita i colori. Tuttavia, quando rileva un tubo disabilita la colorazione. Il seguente comando:
grep --color=always -R "search string" * | less
Attiva sempre la colorazione e sovrascrive il rilevamento automatico, e otterrai l'evidenziazione del colore in less
.
EDIT: Anche se per me funziona solo less
, forse la versione più vecchia richiede il flag -R
per gestire i colori, come suggerito da lì.
Puoi inserire questo nel tuo file .bashrc
:
export GREP_OPTIONS="--color=always"
o creare un alias come questo:
alias grepc="grep --color=always"
e dovrai usare l'opzione -R
per less
, come indicato da lì
In questo caso, preferisco creare file sh piccoli e metterli su /usr/local/bin
.
Di solito uso grep
nel modo ricorsivo sul pwd
, quindi questo è il mio script personale:
#!/bin/sh
grep --color=always -r "$@" . | less -R
E poi l'ho appena copiato come /usr/local/bin/g
(sì, lo uso molto)
Non alias "grep", meglio l'alias "less" che non è mai usato dalle shell. Nel tuo .bashrc
inserisci: alias less="less -r"
.
Ho bisogno di correre
grep --color=always -R "search string" * | less - r
con -r flag dopo less , per farlo funzionare.