Fala Flávio, sem dúvida alguma a sua solução é melhor. Além de mais rápida ela preserva o arquivo original.
Sei que vão dizer que a proposta que foi feita de usar o sed com a opção -i.veio preserva o arquivo "véio". Mas veja, dentro de um loop, o sed será executado diversas vezes e a cada uma dessas vezes o arquivo.veio será atualizado, isto significa que ao fim do loop o arquivo.veio será exatamente igual ao arquivo final, exceto pela última linha editada. -- Abração, Julio *Cursos de Shell e Zenity nos finais de semana: - Em SP ligue (11) 2125-4747; - Em DF ligue (61) 3223-3000 (Turma prevista para 09/05); - No RJ darei um treinamento em julho (p/ detalhes ligue (21) 2561-0867); - Turmas fechadas em outras cidades ligue (21) 8112-9988* 2009/5/13 Flavio Junior <bil...@gmail.com> > > > Nesse teu caso parece ser mais facil usar o grep -vf excluir.txt > original.txt > limpo.txt > > -- > > Flávio do Carmo Júnior aka waKKu > > 2009/5/13 Cléoson Barreto > <cleoson.barr...@gmail.com<cleoson.barreto%40gmail.com> > > > > > > > > > > Olá! > > > > Para que o sed efetue as mudanças no próprio arquivo que está sendo > > utilizado, você deve usar o parâmetro -i. A sua linha ficaria assim: > > > > for i in $(cat rg_log_carga_dados-sev.csv);do sed -i.old "/$i/d" passwd ; > > done > > > > O que fiz: > > -removi a aspa simples; > > -apaguei o "echo" que tinha antes do "sed"; > > -inclui o parâmetro "-i" com um ".old". Assim, você faz as alterações no > > arquivo passwd e mantém uma cópia dele com a extensão ".old" > (passwd.old). > > > > Sobre o parâmetro -i: > > "*-i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if > > extension supplied)*" > > > > Não testei aqui, mas acho que deve funcionar. > > > > []'s > > Cléoson. > > http://farinhadigital.blogspot.com/ > > > > 2009/5/13 thiagomz > > <thiagozerbin...@yahoo.com.br<thiagozerbinato%40yahoo.com.br> > <thiagozerbinato%40yahoo.com.br> > > > > > > > > > > Leonardo escreveu: > > > > Olá a todos, > > > > > > > > Tenho um arquivo em modo texto e gostaria de apagar todas as linhas > com > > > um > > > > determinado IP X.Y.Z.W . Como eu poderia fazer isso? > > > > > > Como eu coloco isso em um loop, ou seja, ler um arquivo com a lista de > > > valores que devem ser apagados. > > > > > > Tentei... > > > > > > for i in $(cat rg_log_carga_dados-sev.csv);do echo sed "'/$i/d'" passwd > > > ; done > > > > > > Mas nao ta rolando... > > > > > > att. > > > > > > thiagomz > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas]