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


17

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


6
+1 per "Perché sono pigro ...". Hai mai considerato una carriera come sviluppatore? :)
dr Hannibal Lecter,

Risposte:


31

Nel tuo file $ HOME / .bashrc, aggiungi:

export GREP_OPTIONS="-n --color"

egrepFunzionerà anche con e negli alias che usano grep.

Aggiornamento : GREP_OPTIONS è obsoleto da grep 2.21 in poi e se si utilizza questa soluzione verrà visualizzato il seguente avviso:

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

La soluzione migliore è quindi seguire i consigli di maco nella sua risposta . Oppure passa a usare ag , che viene stampato a colori per impostazione predefinita.


rispetto.
myusuf3,

4
Rispetto ma nessun voto, eh? ;-)
richq

1
Gli alias possono essere usati bene dopo una pipe. Semplicemente non ricorrono.
maco,

1
Ehi ehi, ho votato. Mi piace meglio dell'alias.
Dmitriy Likhten,

@marco: hai ragione (con bash) - Stavo pensando a csh, dove non possono. Oops!
richq,

29

Modifica ~ / .bash_aliases Aggiungi una riga che dice:

alias grep='grep -n --color'

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


8
Oppure aggiungi la linea .profilese vuoi che funzioni in tutte le shell non solo bash.
LassePoulsen,

1
questo non funzionerà con xargs, ad esempio:find /usr/share -name '*.txt' |xargs grep testing
rfabbri,

2

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'


1

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 "$@"

Inseriscilo nel tuo percorso, ad esempio ~/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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.