Risposte:
Con grepsintassi standard :
grep '[>|]'
o
grep -e '>' -e '|'
o
grep '>
|'
o
grep -E '>|\|'
Se stai usando GNU grep puoi farlo con l' operatore o ( |), che dovrebbe essere evitato (preceduto da una barra rovesciata \). Quindi, per trovare le righe contenenti pipe o un segno maggiore di, includerle letteralmente con l' operatore o :
grep '|\|>' infile
Produzione:
|this is test
where is >
+, ?) è lo zucchero sintattico per \{1,\}e \{0,1\}. (d'altra parte, i riferimenti all'indietro allentati di ERE ( \(.\)\1) che sono solo una caratteristica BRE)
Utilizzo dell'espressione parentesi per abbinare uno dei caratteri desiderati:
grep "[|>]" infile
Produzione:
|this is test
where is >
-io -Equi.
Il modo corretto per farlo è usare -e flag che è specificato da POSIX. Per esempio:
grep -e '>\||' infile
grep -e '>' -e '|' infilefunziona anche.
-eè specificato da POSIX ma non è utile qui. \|non è specificato da POSIX.
\|non è unBREoperatore standard , sebbene funzioni con GNUgrepche sigreptrova nella maggior parte dei sistemi operativi basati su un kernel Linux.