+ Responder ao Tópico

Sed



  1. #1

    Padrão Sed

    Caros amigos, nao consigo encontrar uma opção que preciso para o SED.

    preciso apagar as linhas que contem mais de uma determinada string
    uma string só seria simples -> sed '/string/d'

    mas eu tenho que apagar linhas que contiverem duas strings especificas e nao uma só!
    Alguém saberia como fazer?
    obrigado.

  2. #2

    Padrão Re: Sed

    ACHO que dá pra fazer assim:

    Código :
    # egrep -v "string1|string2" arquivo > arquivo.novo

    Abraços!

  3. #3

    Padrão Re: Sed

    Olá!

    Neste caso, o egrep vai apagar as linhas que contém uma OU outra string, não?

    []'s
    Cléoson.

  4. #4

    Padrão Re: Sed

    Então... eu não cheguei a testar, por isso que eu coloquei o ACHO =).

  5. #5

    Padrão Re: Sed

    É, dessa forma ele apagaou as linhas que continham uma ou outra string.
    Mas de qualquer forma obrigado pela resposta.
    Vou dar uma pesquizada melhor em cima do egrep ao invés do sed pq o sed eu ja procurei bastante e nao deu em nada.

    Obrigado.

  6. #6

    Padrão Re: Sed

    Citação Postado originalmente por biosterlinux
    É, dessa forma ele apagaou as linhas que continham uma ou outra string.
    Mas de qualquer forma obrigado pela resposta.
    Vou dar uma pesquizada melhor em cima do egrep ao invés do sed pq o sed eu ja procurei bastante e nao deu em nada.

    Obrigado.
    mas nao eh oq vc quer?
    qual eh o seu padrao de texto e qual eh a saida q vc quer?

  7. #7

    Padrão Re: Sed

    preciso apagar as linhas que tiverem 2 strings.
    Isso é para editar o squid.conf.
    Por exemplo:
    Quando eu apagar uma acl, chamada teste por exemplo, tb deverao ser apagadas as regras que utilizarem essa acl.
    Neste caso deverao ser apagadas as linhas que contiverem duas palavras (http_access e teste).

    Não posso apagar todas as linhas que contiverem apenas a palavrea teste, pois pode ser que a palavra tb esteja em outras partes do arquivo.

    Bom, a minha necessidade e em um arquivo texto (squid.conf) apagar todas as linhas que tiverem duas palavras que eu vou especificar, que sempre será http_access + o nome da acl.

    Ta difícil! mas a esperança é a última que morre. rs...
    Obrigado, Fernando

  8. #8

    Padrão Re: Sed

    Olá!

    Tente esse comando:

    egrep -i -v string1.*string2 arquivo.txt >> arquivo_novo.txt

    O ".*" indica que "qualquer ocorrência" entre a string1 e string2.

    8-)

    []'s
    Cléoson.

  9. #9

    Padrão Re: Sed

    hehehe

    Perfeito!!
    Obrigado amigo e bons negócios.

    Fernando.