我有一个看起来像这样的文件:
t1 ATGCGTCCGTAGCAG
t2 ATGCCTAGCTAGGCT
即一个名称后跟着一个(DNA)序列。我想要将这个序列分割。例如,上述序列的长度为15,我想将其分割成长度为5的3个部分。我希望有三个新文件,使得:
file1
t1 ATGCG
t2 ATGCC
文件2
t1 TCCGT
t2 TAGCT
文件3
t1 AGCAG
t2 AGGCT
我正在尝试编写一个shell脚本来完成这个任务。一种方法是使用
sed '$Nq;d'
命令编写for循环以获取文件的第N行,然后通过cut -c
命令对其进行切割并保存到一个变量中。然后,使用cut, head和tail
命令和一个额外的变量来实现它。但是,我想知道是否有更好的方法(更整洁和更快)来完成这个任务。注:实际文件将包含1-10千行,每个序列的长度为10-50k长度,我将把序列分成长度为1-2k的序列。
$line
进行二次测试以防止文件末尾没有newline
(非 POSIX 行结尾)的情况,这是一个很好的发现。 - David C. Rankin