Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

headerを残したままsortするには

More than 5 years have passed since last update.

タイトルのママですが、headerを残して、その他の行をsortしたい場合はよくあると思います。NGS解析では、bedファイルやsamファイルでしょうか。headerファイルを別のファイルに分けておいて、ソートしたファイルに、後から足すなどすればすむ話ですが是非ワンライナーでやりたいとおもいました。

データ

test.bed
Chr Start   End ID  Score   Strand
chrM    13676   13771   SRR891268.4 42  +
chr17   25777774    25777825    SRR891268.7 40  -
chrM    6370    6436    SRR891268.28    42  +
chr6    120122843   120122904   SRR891268.38    42  +
chr4    109520697   109520774   SRR891268.51    42  +
chr17   4046420 4046472 SRR891268.52    42  -
chrM    12742   12824   SRR891268.56    25  +
chrM    10183   10234   SRR891268.58    42  +
chr18   57454680    57454760    SRR891268.62    42  +
chrM    9780    9838    SRR891268.72    25  +

テクニック

(): 括弧内のコマンド実行を別プロセスで行う。今回はこれを利用して、&&で結んだ2つの実行結果をパイプで食わせる

-n: head, tailのオプションで出力情報を上からもしくは下からの行数で指定できる。 -1を加えるとheadの場合は最後の行を省く。tailの場合は、最後の行だけが表示される(headの場合と反対になるので注意)。

この2つを使うとsortが実現できる。

(head -n +1 test.bed && tail -n +2 test.bed | sort -k1,1 -k2,2n) > test.sort.bed

出力はいわずもがななので省略(というか捨ててしまった。。)

suimye
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away