Odpowiedzi:
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.
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
.profilejeśli chcesz, aby działała we wszystkich powłokach, a nie tylko bash.
find /usr/share -name '*.txt' |xargs grep testing
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”
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.