Usando o grep em URLs que não funcionam

4

Eu tenho alguns arquivos de texto ( a.txt e b.txt ) contendo um monte de URLs, cada uma em uma linha separada. Pense nesses arquivos como listas negras. Deseja higienizar o arquivo c.txt , limpando-o de qualquer uma das strings em a.txt e b.txt . Minha abordagem é renomear c.txt para c_old.txt e, em seguida, criar um novo c.txt estendendo as strings em a.txt e b.txt .

type c_old.txt | grep -f a.txt -v | grep -f b.txt -v > c.txt

Por muito tempo, parecia que meu sistema estava funcionando bem. No entanto, ultimamente, perdi quase tudo que estava em c.txt e novas adições estão sendo removidas, apesar de não ocorrerem em a.txt ou b.txt . Não faço ideia do porquê.

P.S. Estou no Windows 7, então o grep foi instalado separadamente. Eu apreciaria se houvesse soluções que não exigem que eu instale ferramentas adicionais do Linux.

Atualização: descobri um erro no meu arquivo de lote. Eu usei ren c.txt c_old.txt sem perceber que ren se recusa a sobrescrever o arquivo de destino se ele existir. Assim, o type c_old.txt | ... sempre usou os mesmos dados. Isso explica por que novas adições ao c.txt estavam sendo eliminadas, mas isso não explica por que tantas entradas que estavam em c.txt desapareceram.

    
por gibson 31.07.2014 / 19:46

1 resposta

0

Bem, eu realmente não tenho muitos dados para continuar, já que não há um grande número de novas adições para a.txt e b.txt desde que eu originalmente fiz a pergunta, mas desde a correção da ren issue ( substituiu-o por move /Y ), as coisas têm funcionado bem.

Então, as coisas estão funcionando melhor. Eu ainda não tenho certeza de como a perda de dados inicial aconteceu, mas pode ser que eu tenha errado em algum momento ao editar os scripts e não tenha feito minhas execuções de teste em um ambiente seguro.

    
por 06.08.2014 / 21:05