Odpowiedzi:
Ze standardową grep
skł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 >
-i
ani -E
tutaj.
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 '|' infile
też działa.
-e
jest określony przez POSIX, ale tutaj nie jest użyteczny. \|
nie jest określony przez POSIX.
\|
nie jest standardowymBRE
operatorem, choć współpracuje z GNU,grep
którygrep
występuje w większości systemów operacyjnych zbudowanych wokół jądra Linux.