Когда по каналу с ls, grep в солярисе не работает
Я использую приведенную ниже команду в солярисе
ls -l | grep '*PROC*'
Но это не работает. У меня есть много файлов, которые содержат "PROC" в своем имени, например "XREF_PROC.complete", но когда я использую приведенную выше команду, она не показывает никакого вывода. Когда я использую ls *PROC*
работает, но не работает с grep.
Спасибо
1 ответ
ТЛ; др
Вам не нужен квантификатор, просто grep для PROC:
ls | grep PROC
длинная версия
Звездочка у тебя ls
линия, не совпадает с той, что в вашем grep
линия.
Если в командной строке есть неэкранированная звездочка, оболочка развернет ее раньше ls
видит это, это называется шататься. Одна звездочка распространяется на все файлы в текущем каталоге, например, попробуйте echo *
, *PROC*
glob расширится на все файлы, содержащие PROC.
Звездочка, которую вы используете с grep
экранируется одинарными кавычками и, следовательно, будет интерпретироваться grep
, Тем не мение, grep
по умолчанию использует BRE (базовые регулярные выражения), где звездочка работает как квантификатор, поэтому для количественной оценки требуется какой-либо символ или класс символов, например '.*'
,