Відповіді:
Зі стандартним grepсинтаксисом:
grep '[>|]'
або
grep -e '>' -e '|'
або
grep '>
|'
або
grep -E '>|\|'
Якщо ви використовуєте GNU grep, ви можете зробити це за допомогою оператора or ( |), який повинен бути уникнути (перед цим слід провести зворотну косу рису \). Отже, щоб знайти лінії, що містять або трубу, або знак, що перевищує значення, включіть їх буквально разом із оператором або :
grep '|\|>' infile
Вихід:
|this is test
where is >
+, ?) - синтаксичний цукор для \{1,\}та \{0,1\}. (з іншого боку, EREs відновлює посилання ( \(.\)\1), які є лише BRE)
Використовуючи дужковий вираз, щоб відповідати будь-якому з шуканих символів:
grep "[|>]" infile
Вихід:
|this is test
where is >
-iні -Eтут.
Правильним способом його виконання є використання прапора -e, який задається POSIX. Наприклад:
grep -e '>\||' infile
grep -e '>' -e '|' infileпрацює теж.
-eвизначено POSIX, але тут не корисний. \|не визначено POSIX.
\|не є стандартнимBREоператором, хоча він працює з GNU,grepякий єgrepв більшості операційних систем, побудованих навколо ядра Linux.