Antworten:
Fügen Sie in Ihrer $ HOME / .bashrc-Datei Folgendes hinzu:
export GREP_OPTIONS="-n --color"
Dies funktioniert auch mit egrep
und in Aliasen, die grep verwenden.
Update : GREP_OPTIONS ist seit grep 2.21 veraltet und wenn Sie diese Lösung verwenden, wird die folgende Warnung angezeigt:
grep: warning: GREP_OPTIONS is deprecated; please use an alias or script
Die beste Lösung ist es daher, Macos Rat in seiner Antwort zu befolgen . Oder wechseln Sie zu ag , das standardmäßig in Farbe ausgibt.
Bearbeiten Sie ~ / .bash_aliases Fügen Sie eine Zeile hinzu, die besagt:
alias grep='grep -n --color'
~ / .bash_aliases wird automatisch von ~ / .bashrc eingeschlossen, falls vorhanden
.profile
wenn Sie möchten, dass sie in allen Shells und nicht nur in Bash funktioniert.
find /usr/share -name '*.txt' |xargs grep testing
Sie können die Datei .bashrc in Ihrem Ausgangsverzeichnis ändern und einen Alias definieren, der alle Standardeinstellungen überschreibt:
alias grep = 'grep -n --color'
Nach der Änderung schließen und öffnen Sie das Terminal erneut, da die Datei nur lesbar ist, wenn Sie das Terminal öffnen.
Wenn Sie sich die Datei .bashrc ansehen, finden Sie weitere Standard-Aliase wie:
alias ll = 'ls -l'
alias la = 'ls -A'
alias l = 'ls -CF'
Erstellen Sie ein Skript zusätzlich zu einem in den anderen Antworten genannten Alias. Ein Alias an sich wird nicht immer funktionieren, und eine Skriptebene ist sowieso schnell genug für eine von Menschen lesbare Ausgabe.
Wählen Sie einen Kurznamen wie cgrep
:
#!/bin/sh
grep --color -n "$@"
Fügen Sie es in Ihren Pfad ein, sagen Sie ~/bin
(wenn Sie UPE lesen, steht es in Ihrem Pfad :). Dann wird so etwas funktionieren:
find /usr/share -name '*.txt' | xargs cgrep testing
Ich bin immer noch nicht so glücklich, ich wollte auch, dass grep immer einfärbt, wenn stdout an ein Terminal geht, ohne selektiv cgrep einzugeben.