Grep não está trabalhando em CSV usando lista negra

0

Eu tenho um CSV que é separado assim sem cabeçalho:

epochtime,#value,#value,property=1.property=2.property=3 

As propriedades individuais são separadas por pontos, mas estão contidas em uma única coluna no csv.

Estou tentando executar uma lista negra com uma lista de propriedades para filtrar as propriedades específicas. Eu estou usando esta função grep abaixo:

grep -vFf blacklist.txt file.csv > newfile.csv

No entanto, ele retorna sem resultados. Quando eu removo os outros valores e o tempo de época, isso funciona perfeitamente, levando-me a suspeitar que os períodos podem não ser um problema.

Existe uma maneira de eu ignorar as outras duas colunas e ainda ter os resultados corretos?

Obrigado antecipadamente. Eu sou muito novo no unix. Um comando do awk seria mais adequado?

    
por Yoav Raccah 06.01.2017 / 00:24

1 resposta

0

Se alguém tropeçar nessa postagem por meio de pesquisa procurando uma resposta. Eu escrevi um pequeno script python em seu lugar.

import csv 
import os

blacklist_dict = {}

with open("blacklist.txt", 'r') as blacklist:
   for line in blacklist:
    line = line.strip('\n')
    blacklist_dict[line] = 0
blacklist.close()


with open('filename.csv', "r") as source_file, open('newfile.csv', "w") as target_file:
reader = csv.reader(source_file)
writer = csv.writer(target_file)
for row in reader:
    if row[2] not in blacklist_dict:
        writer.writerows([row])
    
por 07.01.2017 / 03:04

Tags