LoginSignup
6
5

More than 5 years have passed since last update.

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

Posted at

タイトルのママですが、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

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

6
5
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5