一尘不染

如何编辑300 GB文本文件(基因组数据)?

linux

我有一个300 GB的文本文件,其中包含超过250k条记录的基因组数据。有些记录有不良数据,我们的基因组程序“
Popoolution”使我们可以用星号注释掉“不良”记录。我们的问题是,我们找不到可以加载数据的文本编辑器,以便可以注释掉不良记录。有什么建议么?我们有Windows和Linux盒子。

更新:更多信息

Popoolution(https://code.google.com/p/popoolation/)程序在达到“不良”记录时崩溃,从而为我们提供了行号,我们可以将其注释掉。具体来说,我们从Perl收到一条消息,内容为“
F#€%&Scaffolding”。该手册建议我们可以仅使用星号注释掉该坏处。遗憾的是,我们将不得不重复多次此过程…

再想一想…有没有一种方法可以让我们将星号添加到行中,而无需立即打开整个文本文件。鉴于我们将不得不重复该过程未知次数,因此这可能非常有用。


阅读 407

收藏
2020-06-07

共1个答案

一尘不染

根据您的更新:

再想一想…有没有一种方法可以让我们将星号添加到行中,而无需立即打开整个文本文件。鉴于我们将不得不重复该过程未知次数,因此这可能非常有用。

这是一种方法:如果知道行号,则可以在该行的开头添加一个星号,说明:

sed 'LINE_NUMBER s/^/*/' file

看一个例子:

$ cat file
aa
bb
cc
dd
ee
$ sed '3 s/^/*/' file
aa
bb
*cc
dd
ee

如果添加-i,文件将被更新:

$ sed -i '3 s/^/*/' file
$ cat file
aa
bb
*cc
dd
ee

即使我一直认为最好重定向到另一个文件

sed '3 s/^/*/' file > new_file

这样您就可以保留原始文件,并将更新后的文件保存在中new_file

2020-06-07