Risposte:
Con grep
sintassi 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 >
-i
o -E
qui.
Il modo corretto per farlo è usare -e flag che è specificato da POSIX. Per esempio:
grep -e '>\||' infile
grep -e '>' -e '|' infile
funziona anche.
-e
è specificato da POSIX ma non è utile qui. \|
non è specificato da POSIX.
\|
non è unBRE
operatore standard , sebbene funzioni con GNUgrep
che sigrep
trova nella maggior parte dei sistemi operativi basati su un kernel Linux.