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?


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.


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


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'


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.