+ Responder ao Tópico



  1. #1

    Padrão Substituir parte frase com Sed

    Galera,

    Tenho um arquivo que contem a seguinte linha:

    CAMINHO_INFO=d:\pasta\2.31.0\subpasta

    Gostaria, se possível, alterar parte dessa linha com o comando Sed.

    o trecho que quero alterar e o 2.31.0, mas esse nao é um valor fixo, pode variar...
    tem como localizar esse trecho em especifico e alterar o conteudo por outro?

    exemplo:

    CAMINHO_INFO=d:\pasta\2.31.0\subpasta substituir para CAMINHO_INFO=d:\pasta\2.31.1\subpasta

    e depois se tiver

    CAMINHO_INFO=d:\pasta\2.31.1\subpasta substituir para CAMINHO_INFO=d:\pasta\2.31.2\subpasta

    Obrigado.

  2. #2

    Padrão Re: Substituir parte frase com Sed

    Ok,

    Você tem dois padrões:
    2.31.0 e 2.31.1

    Sua ideia é trocar o 2.31.0 para 2.31.1 e o 2.31.1 para 2.31.2?

    Faça primeiro a troca do 2.31.1 para 2.31.2 e logo depois a do 2.31.0 para 2.31.1 assim você evita corromper as informações do seu arquivo.

    sed 's/2.31.1/2.31.2/g arquivo > arquivo2

    sed 's/2.31.0/2.31.1/g arquivo2 > arquivo

    ou pelo # vi

    :%s/2.31.1/2.31.2/g

    :%s/2.31.0/2.31.1/g

    :wq



  3. #3

    Padrão Re: Substituir parte frase com Sed

    Mas o 2.31.0 não é fixo não, pode ter qualquer coisa ai.. por isso que não posso fixar, teria que usar algo com expressão regular.

  4. #4

    Padrão Re: Substituir parte frase com Sed

    mvrochabh

    pode tentar algo assim usando variaveis:

    velho='2.31.0'
    novo='2.31.1a'

    CAMINHO_INFO='d:\pasta\'$velho'\subpasta'

    echo $CAMINHO_INFO 1>&2

    echo $CAMINHO_INFO | sed s/$velho/$novo/

    echo $CAMINHO_INFO | sed -e s/$velho/$novo/

    espero que ajude

    []s
    julio