乌衣书影 發表於 2023-7-12 00:00:00

linux sort多字段排序实例解析

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>
        总结</li></ul></div><p>
        本文研究的主要是linux sort多字段排序,具体介绍如下。</p>
<p>
        Linux多数发行版自带的sort程序,非常强大,在此只说多字段排序</p>
<p>
        sort 有个参数-k,可以指定字段,有比较复杂的语法,不在文本范围内。</p>
<p>
        一下为一段数据(从基因中得到,仅仅作为demo),文件名为 data</p>
<blockquote>
        <p>
                chr13 3008566 3008677<br>
                chr9 3024384 3024515<br>
                chr19 3157071 3157172<br>
                chr5 3236386 3236476<br>
                chr13 3041044 3041191<br>
                chr12 3045343 3045532<br>
                chr6 3087308 3087625<br>
                chr5 3109870 3110091<br>
                chr9 3115454 3115531</p>
</blockquote>
<p>
        字段中间以空格分开</p>
<p>
        现在想首先按照染色体进行排序,然后相同的染色体上的基因按起始位点进行排序,那么这就是一个多字段的排序,而且第二个字段为数字,使用sort命令如下</p>
<p>
        <code>sort -t ' ' -k1,1 -k2n,2 data</code></p>
<p>
        其中 -t ' ' 指定使用空格分列</p>
<ul>
<li>
                -k1,1 指定以第一列为关键字排序</li>
        <li>
                -k2n,2 指定以第二列为关键字做数据排序</li>
</ul>
<p>
        也可以使用</p>
<p>
        <code>sort +0 -1 +1n -2</code></p>
<p>
        效果是一样的。</p>
<p>
        排序结果</p>
<blockquote>
        <p>
                chr12 3045343 3045532<br>
                chr13 3008566 3008677<br>
                chr13 3041044 3041191<br>
                chr19 3157071 3157172<br>
                chr5 3109870 3110091<br>
                chr5 3236386 3236476<br>
                chr6 3087308 3087625<br>
                chr9 3024384 3024515<br>
                chr9 3115454 3115531</p>
</blockquote>
<p class="maodian"></p><h2>
        总结</h2>
<p>
        以上就是本文关于linux sort多字段排序实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!</p>
<p>
        原文链接:http://blog.csdn.net/abcd1f2/article/details/51199557</p>
頁: [1]
查看完整版本: linux sort多字段排序实例解析