Respuestas:
Con grep
sintaxis 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 >
-i
ni de -E
aquí.
La forma correcta de lograrlo es utilizando el indicador -e que especifica POSIX. P.ej:
grep -e '>\||' infile
grep -e '>' -e '|' infile
también funciona
-e
está especificado por POSIX pero no es útil aquí. \|
no está especificado por POSIX.
\|
no es unBRE
operador estándar , aunque funciona con GNU,grep
que segrep
encuentra en la mayoría de los sistemas operativos creados en torno a un núcleo Linux.