Fala Jeiks, será que fui eu mesmo que questionei? Pq eu teria dado uma outra solução. A barra verticl (|) em uma expressão regular significa "ou", só que qdo vc usa a opção -E do grep (que desta forma vira egrep) ou -r no sed, vc está dizendo para interpretar todos os caracteres de expressão regular, como tal, e não como caracteres para o shell. Assim sendo, eu faria este grep da seguinte forma:
grep -E 'jeiks|mais' arquivo Supondo que o arquivo fosse: =arquivo= teste mais jeiks mais teste =final-arquivo= Para procurar "mais jeiks" ou "mais teste" eu usaria parênteses para formar um grupo e limitar o "ou", ficando assim: grep -E 'mais (jeiks|teste)' arquivo Abraços, Julio Cursos de Shell e Zenity em 2 fins de semana? - Em SP ligue (11) 2125-4747; - Em DF ligue (61) 3223-3000 (próxima turma de 1 a 4/10); - No RJ ligue (21) 2561-0867; - Turmas fechadas em outras cidades ligue (21) 8112-9988. 2009/9/24 Jeiks <[email protected]> > > > Olá, > lembram da postagem de um script a algum tempo, que utilizava o grep com > "-e" várias vezes para procurar mais de uma expressão no arquivo? Como por > exemplo: > ---------------------- > =arquivo= > teste > jeiks > mais teste > =final-arquivo= > > # para obter linhas com "jeiks" ou linhas com "mais" > grep -e jeiks -e mais arquivo > --------------------- > > pois é... o Júlio havia comentado sobre os "-e" utilizados, e questionou > sobre estar correto. > Bom, encontrei como é que faz. Para o mesmo resultado anterior, seria: > > grep 'jeiks\|mais' arquivo > > ou sem aspas: > > grep jeiks\\\|mais arquivo > > ou seja, simplesmente colocando o pipe "|" com o caractere de escape "\" > > abs > > -- > Jacson R. C. Silva > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas]
