Wie kann ich nach einer Zeile mit einem Pipe-Zeichen |
oder nach einem Zeichen suchen >
:
files content:
|this is test
where is >
this is none
Was ich jetzt mit grep Befehl brauche, ist
grep -iE "<some expression>" file_name
Ausgabe:
|this is test
where is >
\|
kein Standard istBRE
Operator, wenn es mit der GNU arbeitet ,grep
die das istgrep
bei den meisten anderen Betriebssystemen um einen Linux - Kernel integriert.+
,?
) ist syntaktischer Zucker für\{1,\}
und\{0,1\}
. (Auf der anderen Seite verlieren EREs Rückverweise (\(.\)\1
), die nur eine BRE-Funktion sind)Verwenden des Klammerausdrucks, um eines der gewünschten Zeichen zu finden:
grep "[|>]" infile
Ausgabe:
quelle
-i
oder-E
hier.Der richtige Weg, dies zu erreichen, ist die Verwendung des von POSIX angegebenen Flags -e. Z.B:
quelle
grep -e '>' -e '|' infile
funktioniert auch.-e
wird von POSIX angegeben, ist aber hier nicht nützlich.\|
wird von POSIX nicht angegeben.