我有一个 fastq 文件。文件中的每个条目有四行,如下所示
@0e249669-03e7-47e0-9bc2-a9bcaa35e198 runid=435beb2485d20d8e06f3b38ed907a08f8147fa77 read=100 ch=83 start_time=2018-10-27T12:20:46Z
ACGTATGCCCCGTTCAGTTGCACGTATTGCTATTAGTCACCATTACTTCTTCCTATTTGATGTGAAACCAAGGCAGAGATACTTTTCTGGGTGGTATTTGGGAGGTGGTGAGGCGATTCAAATCCAGGTCTCTCTGGGGACCTTGTTCTTAACCCCTGTACCCCCAGCCATCTGATATAATACTTTT
+
%)"+"""&(,,(,42(--/#)&()1,//./2,7,++8735/-+*#%*3-06,*($(&""#&$)(%.,,2/,#("#$##$')#$-13/*)(-/+(.-*'.+*0)&)&&
行没有任何空行。
这只是一个条目,因此我在文本文件中有数千个条目。
我有另一个文件如下
@0e249669-03e7-47e0-9bc2-a9bcaa35e198
@e5cbeff3-5c28-46e4-a991-3dfded8505de
如何使用这些唯一 ID 的列表提取每条记录的所有四行?
输出应如下
@0e249669-03e7-47e0-9bc2-a9bcaa35e198 runid=435beb2485d20d8e06f3b38ed907a08f8147fa77 read=100 ch=83 start_time=2018-10-27T12:20:46Z
ACGTATGCCCCGTTCAGTTGCACGTATTGCTATTAGTCACCATTACTTCTTCCTATTTGATGTGAAACCAAGGCAGAGATACTTTTCTGGGTGGTATTTGGGAGGTGGTGAGGCGATTCAAATCCAGGTCTCTCTGGGGACCTTGTTCTTAACCCCTGTACCCCCAGCCATCTGATATAATACTTTT
+
%)"+"""&(,,(,42(--/#)&()1,//./2,7,++8735/-+*#%3-06,($(&""#&$)(%.,,2/,#("#$##$')#$-13/)(-/+(.-'.+*0)&)&&
我认为以下命令行可以完成这项工作。数据在文件中fast-file
,数据组名称在文件“列表”中。
while read line;do name=${line%% *}; grep -A3 "$name" fast-file ;done < list
或者如果你想删除</br>
令牌,
while read line;do name=${line%% *}; grep -A3 "$name" fast-file ;done < list | sed 's%</br>%%'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句