将 .TTL 文件与 CSV 文件进行比较并将 "similar" 结果提取到新文件中
Comparing a .TTL file to a CSV file and extract "similar" results into a new file
我有一个很大的 CSV 文件,其中包含数百万行不同的行,每一行都具有以下格式:
/resource/example
现在我还有一个 .TTL 文件,其中每一行都可能包含完全相同的文本。现在我想从包含与当前 CSV 文件相同文本的 .TTL 文件中提取每一行到一个新的 CSV 文件中。
我认为使用 grep 是可能的,但这是一个 linux 命令,我对此非常非常缺乏经验。是否可以在 Windows 中执行此操作?我可以编写一个 Python 脚本来比较这两个文件,但由于这两个文件都包含数百万行,我认为这实际上需要数天才能执行。谁能指出我如何做到这一点的正确方向?
提前致谢! :)
编辑:
.TTL 文件中的示例行:
<nl.dbpedia.org/resource/Algoritme>; <purl.org/dc/terms/subject>; <nl.dbpedia.org/resource/Categorie:Algoritme>; .
当前 CSV 文件中的示例行:
/resource/algoritme
因此,对于这两个示例行,它应该将行从 .TTL 文件导出到新的 CSV 文件中。
使用 GNU awk。首先读取 CSV 并将其散列为 a
。然后将 a
中的每个条目与 TTL 文件中的每一行进行比较:
$ awk 'BEGIN { IGNORECASE = 1 } # ignoring the case
NR==FNR { a[]; next } # hash csv to a hash
{
for(i in a) # each entry in a
if([=10=] ~ i) { # check against every record of ttl
print # if match, output matched ttl record
next # and skip to next ttl record
}
}' file.csv file.ttl
<nl.dbpedia.org/resource/Algoritme>; <purl.org/dc/terms/subject>; <nl.dbpedia.org/resource/Categorie:Algoritme>; .
根据文件的大小,它可能会变慢,也可能会变得更快,但不是基于 OP 中提供的信息。
我有一个很大的 CSV 文件,其中包含数百万行不同的行,每一行都具有以下格式:
/resource/example
现在我还有一个 .TTL 文件,其中每一行都可能包含完全相同的文本。现在我想从包含与当前 CSV 文件相同文本的 .TTL 文件中提取每一行到一个新的 CSV 文件中。
我认为使用 grep 是可能的,但这是一个 linux 命令,我对此非常非常缺乏经验。是否可以在 Windows 中执行此操作?我可以编写一个 Python 脚本来比较这两个文件,但由于这两个文件都包含数百万行,我认为这实际上需要数天才能执行。谁能指出我如何做到这一点的正确方向?
提前致谢! :)
编辑:
.TTL 文件中的示例行:
<nl.dbpedia.org/resource/Algoritme>; <purl.org/dc/terms/subject>; <nl.dbpedia.org/resource/Categorie:Algoritme>; .
当前 CSV 文件中的示例行:
/resource/algoritme
因此,对于这两个示例行,它应该将行从 .TTL 文件导出到新的 CSV 文件中。
使用 GNU awk。首先读取 CSV 并将其散列为 a
。然后将 a
中的每个条目与 TTL 文件中的每一行进行比较:
$ awk 'BEGIN { IGNORECASE = 1 } # ignoring the case
NR==FNR { a[]; next } # hash csv to a hash
{
for(i in a) # each entry in a
if([=10=] ~ i) { # check against every record of ttl
print # if match, output matched ttl record
next # and skip to next ttl record
}
}' file.csv file.ttl
<nl.dbpedia.org/resource/Algoritme>; <purl.org/dc/terms/subject>; <nl.dbpedia.org/resource/Categorie:Algoritme>; .
根据文件的大小,它可能会变慢,也可能会变得更快,但不是基于 OP 中提供的信息。