Я получаю вывод при обстоятельствах, описанных в вашем редакторе:
$ echo "aaaproc1bbb" | grep -Eo 'proc1|proc2'
proc1
$ echo $?
0
$ echo "aaabbb" | grep -Eo 'proc1|proc2'
$ echo $?
1
Код выхода показывает, что совпадений не было.
Вы также можете найти эти опции для grep
полезными (-L
может относиться только к GNU grep):
-c, --count
Suppress normal output; instead print a count of matching lines
for each input file. With the -v, --invert-match option (see
below), count non-matching lines. (-c is specified by POSIX.)
-L, --files-without-match
Suppress normal output; instead print the name of each input
file from which no output would normally have been printed. The
scanning will stop on the first match.
-l, --files-with-matches
Suppress normal output; instead print the name of each input
file from which output would normally have been printed. The
scanning will stop on the first match. (-l is specified by
POSIX.)
-q, --quiet, --silent
Quiet; do not write anything to standard output. Exit
immediately with zero status if any match is found, even if an
error was detected. Also see the -s or --no-messages option.
(-q is specified by POSIX.)
Извините за цитирование страницы man
у вас, но иногда это помогает немного экранировать.
Редактировать
Для списка имен файлов, которые не содержат никаких процедур (без учета регистра):
grep -EiL 'proc1|proc2' *
Для списка имен файлов, которые содержат любую из процедур (без учета регистра):
grep -Eil 'proc1|proc2' *
Чтобы вывести список файлов и показать совпадение (без учета регистра):
grep -Eio 'proc1|proc2' *