Você precisa do operador OR '|' no grep:
grep -E 'S(i|ee)ya' emp
4 Seeya HR
6 Siya Production
Eu criei uma tabela de funcionários.
1 Andy Account
2 Grecie HR
3 Jyorge Marketing
4 Seeya HR
5 Princy Account
6 Siya Production
Aqui, os nomes do 4º funcionário e do 6º funcionário são iguais, mas as ortografias são diferentes. Então eu quero mostrar apenas os registros usando o comando grep. Eu tentei como:
grep S[iee]ya emp
e
grep S[[i][ee]]ya emp
mas não funcionou. Alguma solução?
[...]
cria uma classe de caracteres, não um grupo, você deseja usar um grupo que contenha um |
ou operador
grep 'S\(ee\|i\)ya' emp
fará esse grupo e encontrará essas duas linhas. Você também pode limpar um pouco dizendo ao grep para usar o regex estendido com -E
, então você não precisa escapar dos caracteres para torná-los especiais
grep -E 'S(ee|i)ya' emp
grep 'S.*ya'
parece funcionar também. O quantificador *
corresponde entre zero e tempos ilimitados.