LINUX.ORG.RU

Есть ли для grep универсально решение по поводу --color?

 


0

1

На новых linux системах по умолчанию grep по умолчанию --color=auto
На новых маках grep по умолчанию --color=always

Ну ок, смирился, ставлю в скрипте принудительно --color=never, все работает.

Включаем старую систему:

grep: unknown option -- color=never
С учетом того, что grep под разными системами в разнов порядке выдает инфу о своей версии (типа сначала номер, потом слова, сначала слова, потом номер, сначала лицензия, потом номер), то нормально распарсить grep --version не выйдет. Как это разрулить наиболее оптимально?

UPD
Разрулил через

grep-flag-available() {
    echo | grep $1 "" >/dev/null 2>&1
}

GREP_OPTIONS=""

if grep-flag-available --color=auto; then
    GREP_OPTIONS+=" --color=auto"
fi

Перемещено tailgunner из development

★★★★★

Последнее исправление: PPP328 (всего исправлений: 1)

export GREP_COLORS=never в начале скрипта — старому grep'y от этой переменной ни холодно, ни жарко, новый будет работать как ты хочешь.

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

export GREP_COLORS=never в начале скрипта — старому grep'y от этой переменной ни холодно, ни жарко, новый будет работать как ты хочешь.

А вы проверяли? Может самый новый и будет, но вот мой в переменной хочет описание цветов, а не опции always/never...

vodz ★★★★★
()

На новых маках grep по умолчанию --color=always

МАКаки должны страдать.

anonymous
()

А мне нравятся цвета. Зачем их убирать? При редиректе в пайп всё равно не будет красить.

vzzo ★★★
()
Последнее исправление: vzzo (всего исправлений: 1)
Ответ на: комментарий от ashot

export GREP_OPTIONS='--color=never'

Выпотрошил из iso'шника redhat-6.2-i386 старый grep, и вот что он мне сказал:

└► unset GREP_OPTIONS ; ./bin/grep --version ; export GREP_OPTIONS='--color=never' ; ./bin/grep --version 
grep (GNU grep) 2.4

Copyright (C) 1988, 1992-1998, 1999 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

./bin/grep: unrecognized option '--color=never'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.

dexpl ★★★★★
()
Ответ на: комментарий от PPP328

Не красит, но awk и sed это ломает.

А зачем grep'ать перед awk или sed? Они и сами фильтровать умеют.

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

Был неправ. В 2.25 он мне сказал: GREP_OPTIONS устарел; используйте псевдоним или сценарий

ashot ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.