linux sort 多字段排序

本文详细介绍了Linux sort命令的多字段排序功能,包括如何使用-k参数指定字段及排序方式,通过实例演示了如何按照染色体和起始位点对基因数据进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux多数发行版自带的sort程序,非常强大,在此只说多字段排序
sort 有个参数-k,可以指定字段,有比较复杂的语法,不在文本范围内。

一下为一段数据(从基因中得到,仅仅作为demo),文件名为 data

  1. chr13 3008566 3008677
  2. chr9 3024384 3024515
  3. chr19 3157071 3157172
  4. chr5 3236386 3236476
  5. chr13 3041044 3041191
  6. chr12 3045343 3045532
  7. chr6 3087308 3087625
  8. chr5 3109870 3110091
  9. chr9 3115454 3115531
字段中间以空格分开


现在想首先按照染色体进行排序,然后相同的染色体上的基因按起始位点进行排序,
那么这就是一个多字段的排序,而且第二个字段为数字,使用sort命令如下


  1. sort -t ' ' -k1,1 -k2n,2 data

其中 -t ' ' 指定使用空格分列
-k1,1  指定以第一列为关键字排序
-k2n,2 指定以第二列为关键字做数据排序

也可以使用

  1. sort +0 -1 +1n -2

效果是一样的。

排序结果

  1. chr12 3045343 3045532
  2. chr13 3008566 3008677
  3. chr13 3041044 3041191
  4. chr19 3157071 3157172
  5. chr5 3109870 3110091
  6. chr5 3236386 3236476
  7. chr6 3087308 3087625
  8. chr9 3024384 3024515
  9. chr9 3115454 3115531
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值