Logo Hardware.com.br
cassius_fpu
cassius_fpu Membro Senior Registrado
341 Mensagens 2 Curtidas

egrep

#1 Por cassius_fpu 24/11/2006 - 19:32
Moçada boa noite, to com duvida no comando "egrep", não estah claro qual é a diferença dele com o "grep".

Até onde eu sei o comando grep é usado para pesquisar dentro de arquivos e diretórios. Consultei o man do comando e ele tah dizendo que o "egrep" eh a mesma coisa de usar o "grep" com a opção "-E". Aí, o mesmo manual fala que a opção "-E" serve para "interpretar o teste padrão como uma expressão regular prolongada". Aí , o manual fala tb que expressão prolongada eh "...a pattern that describes a set of strings".
Velhinhos, eu tô boiando... help me!

Por ex, a linha de comando a seguir faz o que?:
grep $(egrep '^jose:' /etc/passwd | cut -d: -f4) /etc/group
Quando digito a linha acima no console, obtenho o seguinte resultado (possuo um usuário com o nome jose, eh claro):

"jose:x:1005:"

O símbolo "^" faz o que? E o "-d:" ? E o "-f4", tá fazendo o q? O "$" naum eh pra indicar que quem tah logado possui privilégios de usuário comum?

P.S.: Alguém sabe onde eu encontro os manuais dos comandos em português?
Responder
carlos seo
carlos seo Tô em todas Registrado
2.2K Mensagens 15 Curtidas
#4 Por carlos seo
24/11/2006 - 20:34
Vamos lá... expressões regulares 101 wink.png


O primeiro argumento do grep é a expressão de busca, que pode ser uma expressão regular (regex para os mais íntimos, hehe). Uma expressão regular nada mais é do que uma maneira formal de se especificar um padrão de texto.
Tal expressão é formada por vários caracteres literais e mais alguns especiais (os chamados metacaracteres), que combinados de uma maneira específica, constituem uma regra.

Os metacaracteres mais usados e seus significados são:
  • ^ início de linha
  • $ fim de linha
  • [] lista de caracteres literais
  • . caractere qualquer
  • {número} número de ocorrências de um caractere
  • ? zero ou uma ocorrência do caractere
  • + uma ou mais ocorrências do caractere
  • * zero ou mais ocorrências do caractere
  • .* AND
  • | OR
Logo, usando a lista acima, você pode notar que a observação do colega amartani está correta. Outros exemplos práticos de expressões regulares:

  • Encontrar linha em branco: ^$
  • Encontrar linha que contenha um número inteiro: [0-9]+
E assim por diante.

Se interessar, entre neste site. Esse cara é o mago das expressões regulares e do sed no Brasil.
Carlos Eduardo Seo
Product Manager
Flickr
carlos seo
carlos seo Tô em todas Registrado
2.2K Mensagens 15 Curtidas
#5 Por carlos seo
24/11/2006 - 20:41
Quanto aos comandos:

  • egrep é o mesmo que grep -E. Faz com que a expressão de procura seja interpretada como uma expressão regular extendida. Na implementação do GNU grep, que é o que você provavelmente usa, não tem diferença prática entre o grep e o egrep, visto que ele não faz diferença entre as sintaxes de uma expressão regular básica ou extendida. A grande diferença entre elas é que uma regex básica faz com que os seus metacaracteres ?, +, {, |, ( e ) percam os seus significados.
Carlos Eduardo Seo
Product Manager
Flickr
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal