Comment est-ce que je peux grep pour la ligne contenant le caractère pipe |
ou pour le caractère >
:
files content:
|this is test
where is >
this is none
maintenant ce dont j'ai besoin en utilisant la commande grep est
grep -iE "<some expression>" file_name
Production:
|this is test
where is >
\|
n'est pas unBRE
opérateur standard , bien qu'il fonctionne avec le GNUgrep
qui segrep
trouve dans la plupart des systèmes d'exploitation construits autour d'un noyau Linux.+
,?
) étant le sucre syntaxique pour\{1,\}
et\{0,1\}
. (d'un autre côté, les ERE perdent les références arrières (\(.\)\1
) qui ne sont qu'une fonctionnalité BRE)Utilisation d'une expression entre crochets pour faire correspondre l'un des caractères souhaités:
grep "[|>]" infile
Production:
la source
-i
ni-E
ici.La façon correcte de le faire est d'utiliser l'indicateur -e qui est spécifié par POSIX. Par exemple:
la source
grep -e '>' -e '|' infile
fonctionne aussi.-e
est spécifié par POSIX mais n'est pas utile ici.\|
n'est pas spécifié par POSIX.