Вы можете использовать расширение фигурных скобок и написать {,.} *
, которое расширяется до *. *
и таким образом включает как обычные, так и скрытые файлы.
Попробуйте:
pip3 list | grep -Ei 'foo|bar|baz'
Вот реальный пример с моего сервера Arch:
pip3 list | grep -Ei 'ufw|set'
setuptools 40.0.0
ufw 0.35
ОС и grep
информация:
uname -a
Linux archlinux 4.16.6-1-ARCH #1 SMP PREEMPT Mon Apr 30 12:30:03 UTC 2018 x86_64 GNU/Linux
grep --version
grep (GNU grep) 3.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Haertel and others, see <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
Причина
grep -ei foo -ei bar -ei baz
не работает, потому что семантика для опции -e
— -e PATTERN
, как и в
grep -i -e foo -e bar -e baz
... так должна была выглядеть команда. Параметр -i
(для нечувствительного к регистру сопоставления )необходимо указать только один раз, и он повлияет на все шаблоны.
С помощью -ei foo
вы просите grep
найти шаблон i
в файле foo
.
Ошибка «сломанная труба» возникает из-за pip3
попытки записи в конец мертвой трубы. Канал мертв, потому что grep
не смог найти файлы foo
, bar
или baz
и завершился (с тремя ошибками «файл не найден» ). Трассировка взята из pip3
, которая является программой на Python (, поэтому она сообщает вам, где именно в коде Python произошла ошибка на его стороне ).