Ich versuche, grep mit einem regulären Ausdruck zu verwenden, um Zeilen in einer Datei zu finden, die mit 1 von 2 möglichen Zeichenfolgen übereinstimmen. Hier ist mein Grep:
$ grep "^ID.*(ETS|FBS)" my_file.txt
Das obige grep gibt keine Ergebnisse zurück. Wenn ich jedoch eine der folgenden Aktionen ausführe:
$ grep "^ID.*ETS" my_file.txt
oder
$ grep "^ID.*FBS" my_file.txt
Ich stimme mit bestimmten Zeilen überein. Warum stimmt mein OP-Regex nicht überein? Vielen Dank im Voraus für die Hilfe!
grep
regular-expression
dr.bunsen
quelle
quelle
egrep
anstelle von verwendengrep -E
.Wenn Sie mehrere Zweige (das
|
Asor
) verwenden möchten , ist es aus Kompatibilitätsgründen besser, explizit zu sagen, dass Sie "modernes RE", auch bekannt als, verwenden möchten. EHE.Verwenden Sie dazu grep -E :
Um mehr über RE, ERE und die ganze "moderne" ER-Geschichte zu erfahren, siehe
man 7 regex
.Alternativ können Sie
egrep
statt verwendengrep
, aber wie Sie lesen könnenman grep
:(...)
quelle