Zamień komendę grep na grep -n --colour?


17

Ponieważ jestem leniwy ... za każdym razem, gdy chcę użyć grep, chcę, aby był grep -n --colour. Czy istnieje sposób, aby to na stałe zmapować?


6
+1 za „Bo jestem leniwy ...”. Czy kiedykolwiek rozważałeś karierę jako programista? :)
dr Hannibal Lecter

Odpowiedzi:


31

W pliku $ HOME / .bashrc dodaj:

export GREP_OPTIONS="-n --color"

Działa to egreprównież z aliasami używającymi grep.

Aktualizacja : GREP_OPTIONS jest przestarzałe od grep 2.21 i jeśli skorzystasz z tego rozwiązania, zobaczysz następujące ostrzeżenie:

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

Najlepszym rozwiązaniem jest zatem zastosowanie się do rad Maco w jego odpowiedzi . Lub przejdź do używania ag , który domyślnie wyświetla kolor.


szacunek.
myusuf3

4
Szacunek, ale bez entuzjazmu, co? ;-)
richq

1
Aliasów można używać po fajnej fajce. Po prostu się nie powtarzają.
maco

1
Hej, hej, głosowałem. Lubię to bardziej niż alias.
Dmitriy Likhten,

@marco: masz rację (z bash) - myślałem o csh, gdzie nie mogą. Ups!
richq

29

Edytuj ~ / .bash_aliases Dodaj wiersz, który mówi:

alias grep='grep -n --color'

~ / .bash_aliases jest automatycznie dołączane przez ~ / .bashrc, jeśli istnieje


8
Lub dodaj linię, .profilejeśli chcesz, aby działała we wszystkich powłokach, a nie tylko bash.
LassePoulsen,

1
to nie zadziała z xargs np .:find /usr/share -name '*.txt' |xargs grep testing
rfabbri

2

możesz zmodyfikować plik .bashrc znajdujący się w twoim katalogu domowym, definiując alias, który zastąpi dowolne ustawienie domyślne:

alias grep = 'grep -n --color'

po zmianie zamknij i ponownie otwórz terminal, ponieważ plik jest odczytywany tylko po otwarciu terminalu.

Jeśli spojrzysz na plik .bashrc, znajdziesz więcej domyślnych aliasów, takich jak:

alias ll = 'ls -l'

alias la = 'ls -A'

alias l = „ls -CF”


1

Utwórz skrypt oprócz aliasu wymienionego w innych odpowiedziach. Sam alias nie zawsze będzie działał, a warstwa skryptu jest wystarczająco szybka, aby uzyskać czytelny dla człowieka wynik.

Wybierz krótką nazwę, na przykład cgrep:

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

Umieść to na swojej ścieżce, powiedz ~/bin(jeśli czytasz UPE, to jest na twojej ścieżce :). Wtedy takie rzeczy będą działać:

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

Nadal nie jestem tak szczęśliwy, ja też chciałem, aby grep zawsze kolorował, gdy stdout do terminala nie wybiórczo wpisuję cgrep.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.