Заменить команду grep на grep -n --colour?


17

Потому что я ленивый .... всякий раз, когда я хочу использовать grep, я хочу, чтобы он был grep -n --colour. Есть ли способ постоянно отображать это?


6
+1 за "Потому что я ленивый ...". Когда-нибудь рассматривал карьеру в качестве разработчика? :)
доктор Ганнибал Лектер

Ответы:


31

В вашем файле $ HOME / .bashrc добавьте:

export GREP_OPTIONS="-n --color"

Это будет работать egrepи с псевдонимами, которые используют grep.

Обновление : GREP_OPTIONS устарела с grep 2.21 и, если вы используете это решение, вы увидите следующее предупреждение:

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

Поэтому лучшим решением будет последовать совету Мако в его ответе . Или переключитесь на ag , который по умолчанию выводит цвета.


уважать.
myusuf3

4
Уважаю но не возражаю, а? ;-)
richq

1
Псевдонимы можно использовать после трубы просто отлично. Они просто не повторяются.
Мако

1
Эй, эй, я проголосовал. Мне нравится это лучше, чем псевдоним.
Дмитрий Лихтен

@marco: ты прав (с bash) - я думал о csh, где они не могут. К сожалению!
Ричк

29

Edit ~ / .bash_aliases Добавьте строку, которая говорит:

alias grep='grep -n --color'

~ / .bash_aliases автоматически включается ~ / .bashrc, если он существует


8
Или добавьте строку, .profileесли хотите, чтобы она работала во всех оболочках, а не только в bash.
LassePoulsen

1
это не будет работать с xargs, например:find /usr/share -name '*.txt' |xargs grep testing
rfabbri

2

Вы можете изменить файл .bashrc, расположенный в вашем домашнем каталоге, определяя псевдоним, который переопределит любой параметр по умолчанию:

псевдоним grep = 'grep -n --color'

после изменения закройте и снова откройте терминал, потому что файл читается только при открытии терминала.

Если вы посмотрите на файл .bashrc, вы найдете больше псевдонимов по умолчанию, таких как:

псевдоним ll = 'ls -l'

псевдоним la = 'ls -A'

псевдоним l = 'ls -CF'


1

Создайте сценарий в дополнение к псевдониму, упомянутому в других ответах. Псевдоним сам по себе не всегда будет работать, а слой сценария достаточно быстрый для удобочитаемого вывода в любом случае.

Выберите короткое имя, например cgrep:

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

Поместите это в свой путь, скажем ~/bin(если вы читаете UPE, это на вашем пути :). Тогда такие вещи будут работать:

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

Я все еще не так счастлив, я тоже хотел, чтобы grep всегда окрашивал, когда выводил на терминал без выборочного ввода cgrep.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.