特定の行とそれに続くシーケンシングデータを抽出したいと思います。linuxコマンドを使用してシーケンシングデータを抽出する方法
次のようにecoli.ffn
ファイルがあります:
$head index.txt
g000011
g000012
を次のように
$head ecoli.ffn
>ecoli16:g027092:GCF_000460315:gi|545267691|ref|NZ_KE701669.1|:551259-572036
ATGAGCCTGATTATTGATGTTATTTCGCGT
AAAACATCCGTCAAACAAACGCTGATTAAT
>ecoli16:g000011:55989:gi|218693476|ref|NC_011748.1|:1128430-1131042
GTGTACGCTATGGCGGGTAATTTTGCCGAT
>ecoli16:g000012:55989:gi|218693476|ref|NC_011748.1|:1128430-1131042
GTGTACGCTATGGCGGGTAATTTTGCCGAT
CTGACAGCTGTTCTTACACTGGATTCAACC
CTGACAGCTGTTCTTACACTGGATTCAACC
とindex.txtのは "ecoli.ffnからindex.txtの抽出" で、理想的な出力は次のとおりです。
>ecoli16:g000011:55989:gi|218693476|ref|NC_011748.1|:1128430-1131042
GTGTACGCTATGGCGGGTAATTTTGCCGAT
>ecoli16:g000012:55989:gi|218693476|ref|NC_011748.1|:1128430-1131042
GTGTACGCTATGGCGGGTAATTTTGCCGAT
CTGACAGCTGTTCTTACACTGGATTCAACC
CTGACAGCTGTTCTTACACTGGATTCAACC
どうすればいいですか?
にもう一つ質問があります。ありがとう、guodongxiaren。しかし、あなたのやり方では、最初の列の順序データだけが抽出されます。 545267691 | | REF | NZ_KE701669.1 | GI:: '> ecoli16:g027092:GCF_000460315実際には、本当のecoli.ffnは次のように実際には551259から572036 ATGAGCCTGATTATTGATGTTATTT CGCGTAAAACATCCGTCAAACAAAC GCTGATTAATGGATTCAACCGGATT > ecoli16:g000011:55989: gi | 218693476 | ref | NC_011748。1 |:1128430から1131042 GTGTACGCTATGGCGGGTAATTTTG CCGATCTGACAGCTGTTCTTACACT GGATTCAACCGGATTCAACCGGATT > ecoli16:g000012:55989:GI | 218693476 | REF | NC_011748.1 |:1128430から1131042 GTGTACGCTATGGCGGGTAATTTTG CCGATCTGACAGCTGTTCTTACACT ' – Ming
いくつかの提案:' BEGIN {flag = 0} 'は役に立たず、削除することができます。 '$ 2 == i {print; $ {print $ 0; flag = 1;}'は '$ 2 == i {print;フラグ= 1} 'を生成する。それにもかかわらず、私はこれが質問の正しい答えだとは思わない。 – karakfa