将 .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 中提供的信息。