Respuestas:
Con grepsintaxis estándar :
grep '[>|]'
o
grep -e '>' -e '|'
o
grep '>
|'
o
grep -E '>|\|'
Si está utilizando GNU grep, puede hacerlo con el operador o ( |), que debe escaparse (precedido por una barra invertida \). Entonces, para encontrar líneas que contengan una tubería o un signo mayor, inclúyalos literalmente con el operador o :
grep '|\|>' infile
Salida:
|this is test
where is >
+, ?) es azúcar sintáctica para \{1,\}y \{0,1\}. (por otro lado, las ERE sueltan referencias ( \(.\)\1) que son una característica única de BRE)
Usando la expresión de paréntesis para hacer coincidir cualquiera de los caracteres deseados:
grep "[|>]" infile
Salida:
|this is test
where is >
-ini de -Eaquí.
La forma correcta de lograrlo es utilizando el indicador -e que especifica POSIX. P.ej:
grep -e '>\||' infile
grep -e '>' -e '|' infiletambién funciona
-eestá especificado por POSIX pero no es útil aquí. \|no está especificado por POSIX.
\|no es unBREoperador estándar , aunque funciona con GNU,grepque segrepencuentra en la mayoría de los sistemas operativos creados en torno a un núcleo Linux.