+ -
当前位置:首页 → 问答吧 → sort命令怎样对多字段进行排序

sort命令怎样对多字段进行排序

时间:2008-07-22

来源:互联网

sort命令怎样对多字段进行排序

7 2
2 5
2 6
3 4
3 3
6 1
要求按第一列降序、第二列升序排列

作者: qw_study   发布时间: 2008-07-22

man一下sort会很难???


SORT(1) FSF SORT(1)

NAME(名称)
  sort - 对文本文件的行排序

SYNOPSIS(总览)
  ../src/sort [OPTION]... [FILE]...

DESCRIPTION(描述)
  将排序好的所有文件串写到标准输出上.

  +POS1 [-POS2]
  从关键字POS1开始,到POS2*之前*结束(快过时了) 字段数和字符偏移量都从零开始计数(与-k选项比较)

  -b 忽略排序字段或关键字中开头的空格

  -c 检查是否指定文件已经排序好了,不排序.

  -d 在关键字中只考虑[a-zA-Z0-9]字符.

  -f 将关键字中的小写字母折合成大写字母.

  -g 按照通常的数字值顺序作比较,暗含-b

  -i 在关键字中只考虑[\040-\0176]字符.

  -k POS1[,POS2]
  从关键字POS1开始,*到*POS2结束. 字段数和字符偏移量都从1开始计数(与基于零的+POS格式作比较)

  -l 按照当前环境排序.

  -m 合并已经排序好的文件,不排序.

  -M 按(未知的)<‘JAN’<...<‘DEC’的顺序比较,暗含-b

  -n 按照字符串的数值顺序比较,暗含-b

  -o FILE
  将结果写入FILE而不是标准输出.

  -r 颠倒比较的结果.

  -s 通过屏蔽最后的再分类比较来稳定排序.

  -t SEP 使用SEP来替代空格的转换non-.

  -T DIRECTORY
  使用DIRECTORY作为临时文件,而不是$TMPDIR或者/tmp

  -u 如果有-c,则按严格的顺序进行检查; 如果有-m,则只输出相等顺序的第一个.

  -z 以0字节结束行,而不是使用换行符,这是为了找到-print0

  --help 显示帮助并退出.

  --version
  输出版本信息并退出.

  POS 为F[.C][OPTS], 这 里 的F 指的是字段数,而C为字段中的字符位置,这在-k中是从开始计数的,而在过时的格式中是从零开始的.OPTS可由一个或多
  个Mbdfinr组成;这有效地屏蔽了对于那个关键字的全局-Mbdfinr设置.如果没有指定关键字,则使用整行作为关键字.如果没有FILE,或者FILE是-,则从标
  准输入读取.

AUTHOR(作者)
  Mike Haertel

REPORTING BUGS(报告BUGS)
  报告bugs,请发到<[email protected]>.

COPYRIGHT(版权)
  版权所有© 1999 Free Software Foundation, Inc.
  这是自由软件;参见关于复制条件的源文件.不承担任何责任;更不用说商用性或特殊需求的适应性.

SEE ALSO (另见)
  sort 的完整文档是以Texinfo手册的方式维护的.如果在你那儿正确地安装了 info 和 sort 程序,命令

  info sort

  应该可以让你访问整个手册.

[中文版维护人]
  riser <[email protected]>

[中文版最新更新]
  2001/08/08

《中国linux论坛man手册页翻译计划》:
  http://cmpp.linuxforum.net

GNU textutils 2.0a 1999年12月 SORT(1)

作者: windowsxp0925   发布时间: 2008-07-22

一条sort命令解决不了这个问题吧,
用cut命令按域分开然后再排序,最后再将排序的结果写到一个文件,这样可以不?

作者: linaxing   发布时间: 2008-07-22

字段间应该有分隔符吧
假设以空格分隔,数据保存在文件中
按第一列降序排列:
cat sort_file | sort -t “ ” +0 -1 -nr | more
按第二列升序排列:

cat sort_file | sort -t “ ” +1 -2 -n | more

作者: qzh   发布时间: 2008-07-22

作者: xwguan   发布时间: 2008-07-23

cat file | sort -k 1n -k 2r

作者: robinqcn   发布时间: 2008-07-28

只sort不行

作者: fierygnu   发布时间: 2008-07-28

多字段排序:
Sort -t: +2n -3 +5n -6 //以:为分隔符,对第3字段以数字方式,第6字段以数字方式排序
说明:
  指定第m个字段的方法是: +(m-1) -m
 字段后跟n表示数字序

作者: jieisme   发布时间: 2011-12-10