Как я хочу получить несколько шаблонов из трубы

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

3
14.07.2018, 21:47
2 ответа

Попробуйте:

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>.
7
27.01.2020, 21:08

Причина

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 произошла ошибка на его стороне ).

8
27.01.2020, 21:08

Теги

Похожие вопросы