Grep 无法使用黑名单处理 CSV

Grep 无法使用黑名单处理 CSV

我有一个 CSV,像这样分开,没有标题:

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

各个属性由句点分隔,但包含在 csv 中的单个列中。

我正在尝试运行一个包含属性列表的黑名单,以过滤特定属性。我在下面使用这个 grep 函数:

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

然而它返回没有结果。当我删除其他值和纪元时间时,它完美地使我怀疑这些时期可能不是问题。

有没有办法可以忽略其他两列并仍然让它返回正确的结果?

提前致谢。我对unix很陌生。 awk 命令会更适合吗?

答案1

如果有人通过搜索偶然发现这篇文章来寻找答案。我写了一个小的 python 脚本。

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])

相关内容