かっこ内を除くすべて削除

かっこ内を除くすべて削除

「>」で始まる行からのみ、角かっこを含む角かっこ内にないすべての項目を削除したいと思います。 sedに代わるものはありますか?また、行をアルファベット順に並べ替えたいのです(例: ">"で始まる行とその下の行)。

入力例:

>ID:000:FLKLNFIA_00192 |[Ignicoccus_hospitalis_KIN4-I.gbfspecies]|strain|Ignicoccus_hospitalis_KIN4-I.gbf|LSU ribosomal protei..|447|FLKLNFIA_1(1297538):162644-163090:1 ^^ Archaeagenomesparanahui Ignicoccus_hospitalis_KIN4-I.gbfspecies strain strain.|neighbours:ID:000:FLKLNFIA_00191(1),ID:000:FLKLNFIA_00193(1)|neighbour_genes:LSU ribosomal protei..,SSU ribosomal protei..| 
ATGAGTGTGACTA---TTT---GCAATCAGCTAGCTACTACGTACTGATCGTAGCTGACG
>ID:000:MGCDKLCO_01184 |[Archaeoglobus_fulgidus_DSM_4304.gbfspecies]|strain|Archaeoglobus_fulgidus_DSM_4304.gbf|50S ribosomal protei..|471|MGCDKLCO_1(2178400):1005279-1005749:1 ^^ Archaeagenomesparanahui Archaeoglobus_fulgidus_DSM_4304.gbfspecies strain strain.|neighbours:ID:000:MGCDKLCO_01183(1),ID:000:MGCDKLCO_01185(1)|neighbour_genes:LSU ribosomal protei..,SSU ribosomal protei..|
ATGCGCGCGATAGCTAGCTAGCTAGCTTTAGGGGGATTAGCTA----ACTCTGATTCGGA

予想出力:

>Archaeoglobus_fulgidus_DSM_4304.gbfspecies
ATGCGCGCGATAGCTAGCTAGCTAGCTTTAGGGGGATTAGCTA----ACTCTGATTCGGA
>Ignicoccus_hospitalis_KIN4-I.gbfspecies
ATGAGTGTGACTA---TTT---GCAATCAGCTAGCTACTACGTACTGATCGTAGCTGACG

ありがとう

答え1

そしてperl

perl -ne 'push @l, ">" . join("", /\[(.*?)\]/g) . "\n" . <>;
          END{print for sort @l}' your-file

そしてsed

<your-file sed 's/^[^[]*\[/>/
                s/\][^[]*\[\{0,1\}//g
                N;s/\n/\[/' |
  sort |
  tr '[' '\n'

答え2

私の(複雑な)アドバイス:

cat file | grep -Po "^[CGTA-]*$|^>.*$" | grep -Po "(?<=\[).*(?=])|^[ACGT-]*$" | awk '{printf (NR%2==0) ? $0 "\n" : ">"$0"::"}' | sort | sed 's/#/\n/'

Grepには、次に始まる文字CGTA- と行を含む行のみが含まれます。>

grep -Po "^[CGTA-]*$|^>.*$"

括弧内の内容(除外)とパターンに一致する行のみ Grep します。ACGT-

| grep -Po "(?<=\[).*(?=])|^[ACGT-]*$"

2行ごとに連結し、区切り文字#と最初の文字を追加して>ソートします。

| awk '{printf (NR%2==0) ? $0 "\n" : ">"$0"#"}' | sort

#最後に、区切り文字を新しい行に置き換えます。

| sed 's/#/\n/'

出力:

>Archaeoglobus_fulgidus_DSM_4304.gbfspecies
ATGCGCGCGATAGCTAGCTAGCTAGCTTTAGGGGGATTAGCTA----ACTCTGATTCGGA
>Ignicoccus_hospitalis_KIN4-I.gbfspecies
ATGAGTGTGACTA---TTT---GCAATCAGCTAGCTACTACGTACTGATCGTAGCTGACG

関連情報