Grep опция цвета по умолчанию

grep - одна из наиболее часто используемых команд в linux. Мне кажется, что его основная функция - выделить строку, которую вы искали, в выходных строках. это может быть достигнуто с помощью опции --color.

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

Я попытался написать небольшой скрипт с именем grepd и добавил его в переменную PATH. Но скрипт не работает на входе grepd. Любые предложения, пожалуйста.

#!/bin/bash
grep --color $1 $2

3 ответа

Решение

Просто добавьте следующий псевдоним в файл конфигурации вашей оболочки, например: .bashrc или же .bash_profile (в зависимости от того, что вы используете, смотрите здесь):

alias grep='grep --color=auto'

Вы можете просто использовать его как grep,

Обычно нет необходимости создавать сценарии, когда простые псевдонимы команд делают то же самое просто отлично. На самом деле ваш сценарий даже не сработает, если вы захотите передать больше опций grep, In case you need a tiny snippet that can deal with arguments, you should use functions.

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

Это иллюстрирует стандартный способ "обертывания" команды сценарием оболочки, когда команда работает не совсем так, как вам нравится.

exec избегает создания дополнительного процесса (один для скрипта и один для grep). Вы можете оставить это, если хотите.

"$@" заменяется всеми аргументами скрипта, независимо от их количества. Он правильно сохраняет аргументы с пробелами и другими символами, которые являются специальными для оболочки.

Попробуйте положить export GREP_COLORS='AUTO' в вашем ~/.bashrc - у меня это работает.

от man grep

       --color[=WHEN], --colour[=WHEN]
          Surround  the  matched (non-empty) strings, matching lines, context lines, file names, line numbers, byte offsets, and separators (for fields and groups of context lines) with escape sequences
          to display them in color on the terminal.  The colors are defined by the environment variable GREP_COLORS.  The deprecated environment variable GREP_COLOR is still supported, but  its  setting
          does not have priority.  WHEN is never, always, or auto.
Другие вопросы по тегам