web-dev-qa-db-fra.com

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

Parce que je suis paresseux ... chaque fois que je veux utiliser grep, je veux que ce soit grep -n --colour. Y a-t-il un moyen de cartographier cela de manière permanente?

17
Tree77

Dans votre fichier $ HOME/.bashrc, ajoutez:

export GREP_OPTIONS="-n --color"

Cela fonctionnera aussi avec egrep et dans les alias qui utilisent grep.

Mise à jour : GREP_OPTIONS est obsolète à partir de grep 2.21 et si vous utilisez cette solution, l'avertissement suivant s'affichera:

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

La meilleure solution est donc de suivre le conseil de maco dans sa réponse . Ou passez en utilisant ag , qui affiche en couleur par défaut.

31
richq

Edit ~/.bash_aliases Ajoutez une ligne qui dit:

alias grep='grep -n --color'

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

29
maco

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 n’est lu que lorsque vous ouvrez le terminal.

Si vous examinez le fichier .bashrc, vous trouverez d'autres alias par défaut tels que:

alias ll = 'ls -l'

alias la = 'ls -A'

alias l = 'ls -CF'

2
Paolo Sammicheli

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 assez rapide pour une sortie lisible par l'homme de toute façon.

Choisissez un nom court, comme cgrep:

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

Placez-le dans votre chemin, dites ~/bin (si vous lisez UPE, c'est dans votre chemin :). Des trucs comme ça vont marcher:

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

Je ne suis toujours pas heureux, moi aussi, je voulais que grep colore toujours la sortie standard vers un terminal sans taper de manière sélective cgrep.

0
rfabbri