egrep: invalid option -- 'E'

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

egrep: invalid option -- 'E'

Сообщение Black »

Недавно заметил такую неприятность: при любом вызове egrep он заявляет:

Shell

%> echo "test" | egrep test egrep: invalid option -- 'E' Usage: egrep [OPTION]... PATTERN [FILE]... Try `egrep --help' for more information.

То же самое при вызове egrep без параметров и egrep --help. Не знаю как давно, т.к. сам если надо пользуюсь grep -E; egrep попался в чужом скрипте.
Gentoo ~amd64, grep собран с USE="nls pcre".
emerge --info:

Код:

Portage 2.1.7.17 (default/linux/amd64/10.0, gcc-4.4.3, glibc-2.11-r1, 2.6.32-zen5 x86_64) ================================================================= System uname: Linux-2.6.32-zen5-x86_64-AMD_Athlon-tm-_II_X2_250_Processor-with-gentoo-2.0.1 Timestamp of tree: Thu, 18 Feb 2010 16:20:01 +0000 app-shells/bash: 4.1_p2 dev-java/java-config: 2.1.10 dev-lang/python: 2.6.4-r1, 3.1.1-r1 dev-util/cmake: 2.8.0-r2 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.6.0-r1 sys-apps/sandbox: 2.2 sys-devel/autoconf: 2.13, 2.65 sys-devel/automake: 1.4_p6-r1, 1.8.5-r3, 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20 sys-devel/gcc: 4.4.3 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6b virtual/os-headers: 2.6.32 ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O3 -march=amdfam10 -mtune=amdfam10 -fomit-frame-pointer -g0" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O3 -march=amdfam10 -mtune=amdfam10 -fomit-frame-pointer -g0" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="ftp://mirror.yandex.ru/gentoo-distfiles/ ftp://mirror.neolabs.kz/gentoo/pub ftp://gentoo-mirror.spb.ru/" LANG="ru_RU.UTF-8" LDFLAGS="-Wl,-O1" LINGUAS="en ru" MAKEOPTS="-j3 -s" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage /usr/local/portage/layman/pro-audio /usr/local/portage/layman/x11" SYNC="rsync://mirror.yandex.ru/gentoo-portage/" USE="3dnow 3dnowext X a52 aac acl acpi afterimage alsa amd64 aspell autotrace bash-completion berkdb branding bzip2 cairo cddb cdio cdparanoia cdr cleartype cli cracklib crypt cups curl custom-optimization cxx dga djvu dri dts dvd dvdnav dvdr dvi enca encode event-callback exif fbcon ffmpeg firefox flac fontconfig fortran fts3 gcj gif gimp glibc-omitfp glitz gnutls gpg gpgme hddtemp iconv imap ipv6 jack jack-tmpfs jpeg jpeg2k kpathsea kvm ladspa lastfmradio lcms lm_sensors logrotate lua lzma lzo mad maildir math md5sum mmx mmxext modules mp3 mp4 mpeg mudflap multilib ncurses network nls nptl nptlonly ntfs ogg opengl openmp otr pam pcre pdf perl plotutils png ppds pppd python qt3support quicktime readline reflection reiserfs sasl sdl secure-delete session smp smtp spell spl sse sse2 ssl svg sysfs syslog t1lib tcpd theora thesaurus threads tiff truetype type1 unicode usb userlocales utils v4l v4l2 vim-syntax vorbis x264 xcb xml xmp xorg xpm xulrunner xv xvid zlib zsh-completion" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="spca50x" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en ru" RUBY_TARGETS="ruby18" SANE_BACKENDS="mustek_usb" USERLAND="GNU" VIDEO_CARDS="radeon" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: egrep: invalid option -- 'E'

Сообщение drBatty »

Black писал(а): ↑
19.02.2010 18:01
То же самое при вызове egrep без параметров и egrep --help. Не знаю как давно, т.к. сам если надо пользуюсь grep -E; egrep попался в чужом скрипте.
Gentoo ~amd64, grep собран с USE="nls pcre".

alias ?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: egrep: invalid option -- 'E'

Сообщение Black »

Нет.

Shell

%> where egrep /bin/egrep %> file /bin/egrep /bin/egrep: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

PS: Кстати, fgrep ведёт себя так же. В исходниках grep нашёл такое (grep.c):

Код: Выделить всё

#if defined(EGREP_PROGRAM)
      printf (_("\
Invocation as `egrep' is deprecated; use `grep -E' instead.\n"));
#elif defined(FGREP_PROGRAM)
      printf (_("\
Invocation as `fgrep' is deprecated; use `grep -F' instead.\n"));
#else

А исходник egrep совсем смешной - две строки:

Код: Выделить всё

#define EGREP_PROGRAM
#include "grep.c"
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: egrep: invalid option -- 'E'

Сообщение drBatty »

Black писал(а): ↑
19.02.2010 18:51
Нет.

да

Код: Выделить всё

drb@localhost:~$ alias ls='XXX'
drb@localhost:~$ ls
bash: XXX: command not found
drb@localhost:~$ which ls
/usr/bin/ls
drb@localhost:~$ file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: egrep: invalid option -- 'E'

Сообщение Black »

Да.

Shell

%> where ls ls: aliased to ls -F --color /bin/ls

zsh %).

UPD: Тьфу ты, т.е. нет.
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: egrep: invalid option -- 'E'

Сообщение drBatty »

Black писал(а): ↑
19.02.2010 19:24
Да.

может function?
ну явно что-то подменяет, попробуйте
$ egrep -- "" .bashrc
вместо ,bashrc подставьте файл, который У ВАС ЕСТЬ.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: egrep: invalid option -- 'E'

Сообщение Black »

Ни единого слова про egrep ни в одном конфиге нет. where - встроенная команда zsh, показывает и алиасы, и функции. И ничего не подменяет, /bin/egrep выдаёт то же самое. Похоже, дело в том, что

Код: Выделить всё

Invocation as `egrep' is deprecated; use `grep -E' instead.

Кстати, у кого gentoo, - посмотрите как себя ведёт egrep. Всё-таки хочется разобраться, у меня проблемы или так задумано.
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
Аватара пользователя
Jampire
Сообщения: 163
ОС: Gentoo Linux amd64 || x86

Re: egrep: invalid option -- 'E'

Сообщение Jampire »

У меня egrep отрабатывает на ура. При принудительном задании опции -E:

Код: Выделить всё

egrep: invalid option -- 'E'
Использование: egrep [ПАРАМЕТР]... ШАБЛОН [ФАЙЛ]...
Попробуйте `egrep --help' для получения более подробного описания.


Где-то стоит алиас...
Человек, говорящий, что это невозможно сделать, не должен мешать тому, кто это делает.
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: egrep: invalid option -- 'E'

Сообщение Black »

Jampire писал(а): ↑
19.02.2010 22:55
У меня egrep отрабатывает на ура. При принудительном задании опции -E:

Код: Выделить всё

egrep: invalid option -- 'E'
Использование: egrep [ПАРАМЕТР]... ШАБЛОН [ФАЙЛ]...
Попробуйте `egrep --help' для получения более подробного описания.


Где-то стоит алиас...

Как? egrep -E? У меня и так не работает. А вообще вывод показан тот же, что и у меня.
Алиаса нигде нет, на 100 раз уже всё прогрепал.
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
Аватара пользователя
sgfault
Сообщения: 586
Статус: -

Re: egrep: invalid option -- 'E'

Сообщение sgfault »

А `egrep` у вас, случайно, не скрипт какой-нибудь? И, если нет, посмотрите исходники - если он просто вызывает `grep`, то там должно быть все совсем просто :unsure:
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: egrep: invalid option -- 'E'

Сообщение vr13 »

взгляните на это, про GREP_OPTIONS, в частности. по-моему ваш случай

скорее всего к теме не относится, мое мнение просто: ставить

Код: Выделить всё

ACCEPT_KEYWORDS="amd64 ~amd64"

и быть при этом уверенным что все будет работать как написано - нужно быть ну очень смелым человеком :)
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: egrep: invalid option -- 'E'

Сообщение Black »

sgfault писал(а): ↑
19.02.2010 23:07
А `egrep` у вас, случайно, не скрипт какой-нибудь? И, если нет, посмотрите исходники - если он просто вызывает `grep`, то там должно быть все совсем просто

Уже посмотрел.

vr13 писал(а): ↑
20.02.2010 10:39
взгляните на это, про GREP_OPTIONS, в частности. по-моему ваш случай

Точно, мой. Спасибо.
Только не понятно откуда оно взялось. Ни в .zshrc, ни в /etc ни одного упоминания про GREP_OPTIONS не нашёл. Пришлось в .zshrc дописать export GREP_OPTIONS=""

vr13 писал(а): ↑
20.02.2010 10:39
скорее всего к теме не относится, мое мнение просто: ставить

Код: Выделить всё

ACCEPT_KEYWORDS="amd64 ~amd64"

и быть при этом уверенным что все будет работать как написано - нужно быть ну очень смелым человеком :)

Ну, во-первых, в portage есть только одна версия grep - из стабильной ветки. А во-вторых, оно работает как написано. Проблем, кроме этой, не нашёл. Да и эту бы не нашёл, если бы не тот скрипт...
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: egrep: invalid option -- 'E'

Сообщение drBatty »

Black писал(а): ↑
20.02.2010 14:50
Точно, мой. Спасибо.
Только не понятно откуда оно взялось.

ИМХО лучше вообще не использовать grep, ну кроме самых простых случаев, или когда нужно найти слово в файлах внутри дерева каталогов (альтернативную sed придётся запускать вместе с find в этом случае, много кнопок давить).
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: egrep: invalid option -- 'E'

Сообщение vr13 »

Black писал(а): ↑
20.02.2010 14:50
Только не понятно откуда оно взялось. Ни в .zshrc, ни в /etc ни одного упоминания про GREP_OPTIONS не нашёл. Пришлось в .zshrc дописать export GREP_OPTIONS=""

я бы поискал все-таки (и рассказал общественности - на случай подобных граблей): не может это в окружении браться "из воздуха" :)
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: egrep: invalid option -- 'E'

Сообщение Black »

Нашёл. Где-то в середине ~/.zshrc был засорусен файл ~/.kde/share/env, в котором была эта переменная и ещё несколько каких-то, судя по всему относящихся к kde (KDEDIR, INCLUDE=$INCLUDE:$KDEDIR/include и ещё что-то). Т.к. с kde я слез году в 2004-2005, файл тоже где-то тех времён. За каким я вписал это в отдельный файл и заинклудил его в середине я уже, естественно, не помню %). Файл убрал, конфиг заодно подчистил от древнего мусора.
Заявление для общественности: на случай подобных граблей надо делать не

Shell

grep GREP_OPTIONS .*(.)
а

Shell

find .* -type f -exec grep GREP_OPTIONS '{}' \; -exec echo '{}' \;

%)
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали: