Chinaunix

标题: sort 两列排序的问题 [打印本页]

作者: masylichu    时间: 2011-10-20 23:11
标题: sort 两列排序的问题
  1. a       0
  2. a       -1
  3. c       1
  4. b       -1
  5. b       1
  6. c       -1
  7. c       2
复制代码
这个文件保存为 temp
对于这个简单的两列,我想先按照第一列排序再按照第二列排序。

sort -k1 -k2n  temp

可是结果就是不对,请高手帮忙解决问题出在哪里?
作者: Shell_HAT    时间: 2011-10-20 23:14
是这个结果吗?
#sort -k1,1 urfile
a       -1
a       0
b       -1
b       1
c       -1
c       1
c       2

作者: masylichu    时间: 2011-10-20 23:20
回复 2# Shell_HAT


是的。解释一下。
作者: unixlinuxsys    时间: 2011-10-21 09:05
本帖最后由 unixlinuxsys 于 2011-10-21 09:06 编辑
  1. [root@thinkpad ShareData]# sort -t: -k1,1 sort
  2. a       0
  3. a       -1
  4. b       1
  5. b       -1
  6. c       1
  7. c       -1
  8. c       2
  9. [root@thinkpad ShareData]#
复制代码
http://images.china-pub.com/ebook195001-200000/195482/zcover.jpg?2011-9-30%2012:16:42
85页关于-选项的描述你看一下
作者: waker    时间: 2011-10-21 09:15
-k, --key=POS1[,POS2]
              start a key at POS1, end it at POS 2 (origin 1)
作者: springwind426    时间: 2011-10-21 09:56

  1. sort -k1,1 -k2,2n

  2. 当对不同的列进行不同的排序方式的时候,需要用k来指定起始列和终止列

  3. -k1,1 表示对第一列进行字符串比较  1,1 表示起始列为第一列,终止列也为第一列
  4. -k2,2n 表示仅对第二列进行数值比较

复制代码

作者: rayzhang11    时间: 2011-10-21 10:10
觉得饿的这个也关乎。

sort -k1,1 -k2,2n temp
作者: masylichu    时间: 2011-10-21 11:57
回复 7# rayzhang11


谢谢。就应该是这样子,第一列是字符排序,第二列是数字排序,先第一列再第二列。

thank you very much.
作者: 芬达7402    时间: 2011-10-21 17:23
是这个结果吗?
Shell_HAT 发表于 2011-10-20 23:14



    版主的shell不是bash?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2