Pular para o conteúdo
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Grep -v

Enviado em 25/10/2005 - 09:22h

Olha eu não sei vocês, mas eu não conhecia este parâmetro do grep, e olha que ele me é muito útil ... pode ter um uso simples de por exemplo tirar as linhas que iniciam com '#' (comentários) de um arquivo, entre várias outras utilidades.
Mas o que ele exatamente faz ?! O '-v' seria de --vai-embora; ele manda embora todas as linhas que contêm o texto determinado. Vamos supor que temos o arquivo agenda.dat:

agenda.dat
#Arquivo com os dados da agenda
# esse sou eu:
augusto:1234-4567
#agora os outros
caio:5581-6582
fabio:2563-9854

Pronto, se eu desse um "#cat agenda.dat | grep -v #'" o comando retornaria:
teste@~#cat agenda.dat | grep -v #
augusto:1234-4567
caio:5581-6582
fabio:2563-9854

Capitaram ? Espero que sim ;D
Espero tb ter ajudado em alguma coisa !

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Legal

Enviado em 24/11/2005 - 18:44h

Bem útil.

3. Muito bom

Enviado em 21/12/2005 - 10:30h

Isso vai me ajudar pra caramba. !!!

Valeu

Thiago Rodines

4. Melhorias - expressões regulares extendidas

Enviado em 08/06/2006 - 15:31h

o grep é um canivete suiço para filtragem, mas é muito melhor quando temos regexp extendida ativada, no grep isso é fácil, basta utilizar a opção -E (ou --extended-regexp). Assim teremos um brinquedo maior e melhor :).
A opção -v indica a negação do padrão que da busca, como foi bem dito acima, mas eu gostaria de melhorar o exemplo dado:

vamos usar o arquivo agenda, com algumas linhas a mais
# esse sou eu:
augusto:1234-4567

#agora os outros
caio:5581-6582
fabio:2563-9854

# mais alguns telefones
fulado: 555-5555 # nao sei quem é
sicrano:66-66-66-66 # conheci ontem

embora o comando

$ cat agenda|grep -v #

esteja correto ele vai retirar todas as linhas com o caracter # (omitindo assim os dois ultimos telefones), uma melhoria seria retirarmos todas as linhas começando como caracter #. O comando seria:

$ cat agenda|grep -v -E '^#'

que retornaria

augusto:1234-4567

caio:5581-6582
fabio:2563-9854

# mais alguns telefones
fulado: 555-5555 # nao sei quem é
sicrano:66-66-66-66 # conheci ontem

Aqui um problema ocorreu, um dos comentarios não começa na primeira linha, e notem tb que há comentário depois dos telefones, melhorando o comando poderiamos ter:

$ cat agenda|$ cat agenda|grep -v -E '^[ ]*#'

que retornaria

augusto:1234-4567

caio:5581-6582
fabio:2563-9854

fulado: 555-5555 # nao sei quem é
sicrano:66-66-66-66 # conheci ontem


Outra melhoria seria eliminar as linhas em branco do arquivo (caso existam) com o comando

$cat agenda |grep -v -E '(^[ ]*#|^$)'

que retornaria:

augusto:1234-4567
caio:5581-6582
fabio:2563-9854
fulado: 555-5555 # nao sei quem é
sicrano:66-66-66-66 # conheci ontem




5. Re: Grep -v

Enviado em 10/05/2007 - 14:00h

Dúvida
Estou revivendo o tópico, pois me deparei com um problema.
Quando eu do o grep ele mostra:
7 14018810085191107
eu gostaria de retornar somente do 140 adiante
Existe uma forma de fazer isso ?

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder