Odpowiedzi:
Ze standardową grepskładnią:
grep '[>|]'
lub
grep -e '>' -e '|'
lub
grep '>
|'
lub
grep -E '>|\|'
Jeśli używasz GNU grep, możesz to zrobić za pomocą operatora lub ( |), który powinien być poprzedzony znakiem ucieczki (poprzedzonym odwrotnym ukośnikiem \). Aby znaleźć wiersze zawierające znak potoku lub znak większy niż, dołącz je dosłownie do operatora lub :
grep '|\|>' infile
Wynik:
|this is test
where is >
+, ?) to cukier syntaktyczny dla \{1,\}i \{0,1\}. (z drugiej strony, ERE tracą referencje ( \(.\)\1), które są funkcją tylko BRE)
Używanie wyrażenia w nawiasach w celu dopasowania jednego z poszukiwanych znaków:
grep "[|>]" infile
Wynik:
|this is test
where is >
-iani -Etutaj.
Prawidłowym sposobem na osiągnięcie tego jest użycie flagi -e określonej przez POSIX. Na przykład:
grep -e '>\||' infile
grep -e '>' -e '|' infileteż działa.
-ejest określony przez POSIX, ale tutaj nie jest użyteczny. \|nie jest określony przez POSIX.
\|nie jest standardowymBREoperatorem, choć współpracuje z GNU,grepktórygrepwystępuje w większości systemów operacyjnych zbudowanych wokół jądra Linux.