Estou tentando usar grep com um regex para encontrar linhas em um arquivo que corresponde a 1 de 2 possíveis seqüências de caracteres. Aqui está o meu grep:
$ grep "^ID.*(ETS|FBS)" my_file.txt
O grep acima não retorna resultados. No entanto, se eu executar:
$ grep "^ID.*ETS" my_file.txt
ou
$ grep "^ID.*FBS" my_file.txt
Eu combino linhas específicas. Por que minha regex OR não corresponde? Obrigado antecipadamente pela ajuda!
grep
regular-expression
dr.bunsen
fonte
fonte
egrep
vez degrep -E
.Se você quiser usar vários ramos (o
|
quantoor
), em seguida, para ser mais compatível, é melhor explícita dizer que você quer usar "RE moderna" aka. ANTES.Para fazer isso, use grep -E :
Para saber mais sobre ER, ERE e toda a história "moderna" de ER, consulte
man 7 regex
.Como alternativa, você pode usar em
egrep
vez degrep
, mas como pode ler emman grep
:(...)
fonte