+ Responder ao Tópico



  1. Caros,

    Estou com um probleminha ao usar o "sed" em meu script, ao tentar passar variavel em um laço ele somente remove da lista a ultima variavel o comando no fim do laço. segue o codigo

    Código :
     
    array=( ${array[*]} `ls -1 *.loc` )
     
     
     for palavra in ${array[@]}; do
     
              sed  "/$palavra/d" lista_loc.txt;
     
    done

    Poderiam me dar uma ajuda?

    Grato

  2. Você está querendo remover a palavra definitivamente do arquivo lista_loc.txt?

    Se você executar o seu script usando bash -x script.sh poderá ver que ele remove todas as ocorrências do array, mas uma por vez. Se você quiser alterar o arquivo lista_loc.txt e remover as ocorrências a medida que elas aparecerem, você tem que usar sed -i "/$palavra/d" lista_loc.txt, assim ele vai alterar o arquivo removendo a palavra de dentro dele.

    Se não for isso que você quer, poste aqui um exemplo do que você está querendo que eu te ajudo melhor.



  3. Citação Postado originalmente por galahad Ver Post
    Você está querendo remover a palavra definitivamente do arquivo lista_loc.txt?

    Se você executar o seu script usando bash -x script.sh poderá ver que ele remove todas as ocorrências do array, mas uma por vez. Se você quiser alterar o arquivo lista_loc.txt e remover as ocorrências a medida que elas aparecerem, você tem que usar sed -i "/$palavra/d" lista_loc.txt, assim ele vai alterar o arquivo removendo a palavra de dentro dele.

    Se não for isso que você quer, poste aqui um exemplo do que você está querendo que eu te ajudo melhor.

    galahad,
    Muito obrigado pela sua dica, na verdade o comando remove a linha onde encontra a palavra, a sua dica funcionou, apenas preciso que o arquivo original se mantenha, teria como eu fazer isso sem comandos terceiros (cp lista_loc.txt lista_clean.txt)? Usando o comando abaixo ele nao direcionou a saida para lista_clean.txt.

    Código :
    sed -i  "/$palavra/d" lista_loc.txt > lista_clean.txt


    Obrigado!

  4. você pode tentar usar:

    sed -e "/$palavra/d" lista_loc.txt >> lista_clean.txt
    Acho que resolve seu problema



  5. Citação Postado originalmente por galahad Ver Post
    você pode tentar usar:

    sed -e "/$palavra/d" lista_loc.txt >> lista_clean.txt
    Acho que resolve seu problema

    galahad, mais uma vez agradeço pela sua ajuda, ja havia tentado assim e nao funcionou como esperado, mas usando sua dica anterior funcionou perfeitamente, adicionei um "cp" no script e ficou tudo certo.

    Obrigado!






Tópicos Similares

  1. heeeelp!!! sed com variáveis no shell-script
    Por cachioli no fórum Servidores de Rede
    Respostas: 2
    Último Post: 17-06-2005, 10:56
  2. Problemas no sed usando variaveis em shell-script
    Por cachioli no fórum Linguagens de Programação
    Respostas: 4
    Último Post: 17-06-2005, 08:48
  3. Variaveis do Samba!!
    Por Anticristh no fórum Servidores de Rede
    Respostas: 1
    Último Post: 30-01-2003, 18:30
  4. Variaveis de ambiente
    Por optimusprime no fórum Servidores de Rede
    Respostas: 1
    Último Post: 15-01-2003, 23:27
  5. variáveis de ambiente
    Por malanar no fórum Linguagens de Programação
    Respostas: 2
    Último Post: 13-01-2003, 18:54

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L