有没有一种好方法可以从几兆字节大小的 CSV 文件中找到与 ~500 个字符的极长字符串的精确匹配?
Is there a good way to find exact matches of a extremely long string ~500 characters from a couple megabyte sized CSV file?
我正在尝试从包含不同序列的几兆字节的大型 CSV 文件中找到约 500 个字符长的 DNA 序列的匹配项。在 CSV 文件中的每个序列之前,有一些我想要的元数据。每个序列和序列元数据正好占一行。我试过了
grep -B 1 "extremelylongstringofDNATACGGCATAGAGGCCGAGACCTAGGATTAACGTTACTGACGAT" csvfile.csv
然而 returns filename too long
当我尝试使用
查找 csv 文件的行数时,我遇到了一件有趣且令人沮丧的事情
wc -l csvfile.csv
返回
0 csvfile.csv
没有 -l
标志,它返回
0 161410 41507206 csvfile.csv
这是我在每个序列的结尾和下一个序列的以下元数据的开头之间添加一行之后的结果。
问题是文件有 CR 行终止符,而 GNU 工具没有检测到任何行结束符,因此将文件作为一大行读取。我通过使用 mac2unix 转换文件以使其 GNU 行结束可读来解决了这个问题。
感谢 Etan Reisner 提供提示
我正在尝试从包含不同序列的几兆字节的大型 CSV 文件中找到约 500 个字符长的 DNA 序列的匹配项。在 CSV 文件中的每个序列之前,有一些我想要的元数据。每个序列和序列元数据正好占一行。我试过了
grep -B 1 "extremelylongstringofDNATACGGCATAGAGGCCGAGACCTAGGATTAACGTTACTGACGAT" csvfile.csv
然而 returns filename too long
当我尝试使用
查找 csv 文件的行数时,我遇到了一件有趣且令人沮丧的事情wc -l csvfile.csv
返回
0 csvfile.csv
没有 -l
标志,它返回
0 161410 41507206 csvfile.csv
这是我在每个序列的结尾和下一个序列的以下元数据的开头之间添加一行之后的结果。
问题是文件有 CR 行终止符,而 GNU 工具没有检测到任何行结束符,因此将文件作为一大行读取。我通过使用 mac2unix 转换文件以使其 GNU 行结束可读来解决了这个问题。
感谢 Etan Reisner 提供提示