+ Responder ao Tópico



  1. #1

    Padrão Comando que substitui palavras dentro de um arquivo,

    Olá pessoal tudo bem?
    Existe algum comando no linux que substitua uma palavra, por outra em todos os arquivos de um diretório?\\


    Abraços
    Dirceu

  2. #2

    Padrão Comando que substitui palavras dentro de um arquivo,

    Olá!

    O comando sed faz isso. Como a substituição é em vários arquivos, teria que ser feito um um laço "for" para ler cada arquivo do diretório e fazer a substituição. Algo como:
    --------------------------
    #!/bin/bash

    for i in /diretorio/* do;
    cat $i | sed 's/texto1/texto2' > $i.new
    done
    --------------------------

    Acho que é mais ou menos isso. Não testei, mas deve funcionar.

    :good:

    []'s
    Cléoson.

  3. #3

    Padrão Comando que substitui palavras dentro de um arquivo,

    Muito bom obrigada...


    Acabei fazendo um aplicativo em java que faz isto...
    heheh
    vou tentar com shell agora..

  4. #4

    Padrão Comando que substitui palavras dentro de um arquivo,

    cleoson,

    testei aki e esta funcionado blz, a unica coisa q tem q alterar nele é o ";" e coloca-lo antes do "do"

    #!/bin/bash

    for i in /diretorio/*; do
    cat $i | sed 's/texto1/texto2' > $i.new
    done

    Agora, eu estava percebendo, ele não faz é a verificação da palavra inteira portanto:

    samba
    sambando
    # sed 's/samba/rock'

    rock
    rockndo

    tentei varias formas de resolver isso mas sem secusso, alguem tem uma dica?

  5. #5
    charadaa
    Visitante

    Padrão Comando que substitui palavras dentro de um arquivo,

    sei que dentro do vim tem isso só não lembro o comando vou peaquisar qualquer coisa posto aqui mas tenho certeza que pelo vim da ja fiz varias vezes mas não lembro.

    Abraços

  6. #6
    charadaa
    Visitante

    Padrão Comando que substitui palavras dentro de um arquivo,

    Ai galera achei ta ai alterar pelo vim


    :1,$s/Slackware/Debian/g

    onde:
    1 -> Primeira linha;
    $ -> Última linha do arquivo;
    s -> Substituição;
    /Slackware -> String a ser substituída;
    /Debian -> String substituta;
    /g -> Global, ou seja, alterar todas as ocorrências.

  7. #7

    Padrão Comando que substitui palavras dentro de um arquivo,

    Blz, isso mesmo.

    Funcionou na boa.

    Valeu