it-swarm.it

Sostituisci il comando grep con grep -n --colour?

Perché sono pigro .... ogni volta che voglio usare grep, voglio che sia grep -n - color. C'è un modo per mappare permanentemente questo?

17
Tree77

Nel tuo file $ HOME/.bashrc, aggiungi:

export GREP_OPTIONS="-n --color"

Funzionerà anche con egrep e negli alias che usano grep.

Aggiornamento : GREP_OPTIONS è deprecato da grep 2.21 in poi e se usi questa soluzione vedrai il seguente avviso:

grep: warning: GREP_OPTIONS is deprecated; please use an alias or script

La soluzione migliore è quindi seguire il consiglio di maco nella sua risposta . In alternativa, passa a ag , che viene stampato a colori per impostazione predefinita.

31
richq

Modifica ~/.bash_aliases Aggiungi una riga che dice:

alias grep='grep -n --color'

~/.bash_aliases viene automaticamente incluso da ~/.bashrc se esiste

29
maco

puoi modificare il file .bashrc che si trova nella tua home directory definendo un alias, che sovrascriverà qualsiasi impostazione predefinita:

alias grep = 'grep -n --color'

dopo la modifica chiudere e riaprire il terminale perché il file viene letto solo quando si apre il terminale.

Se dai un'occhiata al file .bashrc troverai altri alias predefiniti come:

alias ll = 'ls -l'

alias la = 'ls -A'

alias l = 'ls -CF'

2
Paolo Sammicheli

Crea uno script oltre a un alias menzionato nelle altre risposte. Un alias da solo non funzionerà sempre e un livello di script è comunque abbastanza veloce per l'output leggibile dall'uomo.

Scegli un nome breve, come cgrep:

#!/bin/sh
grep --color -n "[email protected]"

Inseriscilo nel tuo percorso, pronuncia ~/bin (se leggi UPE questo è nel tuo percorso :). Quindi cose come questa funzioneranno:

find /usr/share -name '*.txt' | xargs cgrep testing

Non sono ancora così felice, anche io volevo che grep colorasse sempre quando stdout su un terminale senza digitare selettivamente cgrep.

0
rfabbri