Remplacer la commande grep par grep -n --colour?

17

Parce que je suis paresseux .... chaque fois que je veux utiliser grep, je veux que ce soit grep -n --colour. Existe-t-il un moyen de cartographier cela en permanence?

Tree77
la source
6
+1 pour "Parce que je suis paresseux ...". Avez-vous déjà envisagé une carrière de développeur? :)
dr Hannibal Lecter

Réponses:

31

Dans votre fichier $ HOME / .bashrc, ajoutez:

export GREP_OPTIONS="-n --color"

Cela fonctionnera egrepaussi avec les alias qui utilisent grep.

Mise à jour : GREP_OPTIONS est déconseillé à partir de grep 2.21 et si vous utilisez cette solution, vous verrez l'avertissement suivant:

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

La meilleure solution est donc de suivre les conseils de maco dans sa réponse . Ou passez à l'utilisation de ag , qui sort en couleur par défaut.

richq
la source
le respect.
myusuf3
4
Du respect mais pas de vote positif, hein? ;-)
richq
1
Les alias peuvent très bien être utilisés après une pipe. Ils ne récriminent tout simplement pas.
maco
1
Hé hé, j'ai voté positivement. J'aime mieux cela que l'alias.
Dmitriy Likhten
@marco: vous avez raison (avec bash) - je pensais à csh, où ils ne peuvent pas. Oups!
richq
29

Modifier ~ / .bash_aliases Ajoutez une ligne qui dit:

alias grep='grep -n --color'

~ / .bash_aliases est automatiquement inclus par ~ / .bashrc s'il existe

maco
la source
8
Ou ajoutez la ligne .profilesi vous voulez qu'elle fonctionne dans tous les shells et pas seulement bash.
LassePoulsen
1
cela ne fonctionnera pas avec xargs par exemple:find /usr/share -name '*.txt' |xargs grep testing
rfabbri
2

vous pouvez modifier le fichier .bashrc situé dans votre répertoire personnel en définissant un alias, qui remplacera tout paramètre par défaut:

alias grep = 'grep -n --color'

après la modification, fermez et ouvrez à nouveau le terminal car le fichier est en lecture seule lorsque vous ouvrez le terminal.

Si vous regardez le fichier .bashrc, vous trouverez plus d'alias par défaut comme:

alias ll = 'ls -l'

alias la = 'ls -A'

alias l = 'ls -CF'

Paolo Sammicheli
la source
1

Créez un script en plus d'un alias mentionné dans les autres réponses. Un alias en lui-même ne fonctionnera pas toujours, et une couche de script est de toute façon assez rapide pour une sortie lisible par l'homme.

Choisissez un nom court, comme cgrep:

#!/bin/sh
grep --color -n "$@"

Placez-le sur votre chemin, dites ~/bin(si vous lisez UPE, c'est sur votre chemin :). Ensuite, des trucs comme ça fonctionneront:

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

Je ne suis toujours pas si heureux, je voulais aussi que grep colore toujours lorsqu'il sort sur un terminal sans taper sélectivement cgrep.

rfabbri
la source