sort如何按指定的列排序

<1>[[email protected] company]# cat test
06d7            145             41925425
06e1            127             41925425
06e3            230             41925425
06ff            3847            41925425
070d            3408            41925425
0715            4               41925425
0726            134             41925425
我想按第二列值进行排序,从大到小的顺序。
[[email protected] company]# sort -n -k2  test     或   sort -g -k2 test             //在这没有区别,在别的地是有区别的
0715            4               41925425
06e1            127             41925425
0726            134             41925425
06d7            145             41925425
06e3            230             41925425
070d            3408            41925425
06ff            3847            41925425
0715            4               41925425
06e1            127             41925425
0726            134             41925425
06d7            145             41925425
06e3            230             41925425
070d            3408            41925425
06ff            3847            41925425

-n, --numeric-sort          compare according to string numerical value

-g, --general-numeric-sort  compare according to general numerical value

-k, --key=POS1[,POS2]     start a key at POS1, end it at POS2 (origin 1)

-t, --field-separator=SEP  use SEP instead of non-blank to blank transition

linux的bash shell中有个函数叫做sort,其中有个flag是-t,这个flag的作用是指定用户定义的字符作为分隔符(bash shell 默认用‘\t‘和‘ ‘作为分隔符),但是当指定的字符为‘\t‘时,用法有些特别了,如下:

cat test.txt|sort -k 1 -t $‘\t‘ > sort.txt

cat test.txt|sort -k 2 -t ‘ ‘ > sort.txt

注意到区别了吗?如果指定的分隔符是‘\t‘,我们需要用$来使它表示本来的意思,否则sort程序无法识别‘\t‘,而对于一般的制定字符,比如‘ ‘和‘:‘就不用了。当然,用$‘ ‘和$":"也是可以的。

<2>sort -g -k2 -t‘:‘ -r nat.cfg          //按照以":"为分割的最后一列反向排序

20012 192.168.5.249:20012
30062 192.168.5.249:20011
30042 192.168.5.228:20010
20005 192.168.5.232:20005
20000 192.168.5.161:20000
60251 192.168.5.251:22
60250 192.168.5.250:22
60249 192.168.5.249:22
60248 192.168.5.248:22
60247 192.168.5.247:22

时间: 2024-08-03 07:47:47

sort如何按指定的列排序的相关文章

datatable 给指定的列排序或指定的列不排序

table = $('#dtProcess').autoOptionTable({ "ordering": true,//feu所有的列排序 "columnDefs": [ { "bSortable": false, "aTargets": [ 1,2 ]//指定2,3列不排序 } ] });

shell——按指定列排序

转自http://roclinux.cn/?p=1350 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [[email protected] programming]$ cat seq.txtbananaapplepearorange[[email protected] programming]$ sort seq.txtapplebananaorangepear 2 sort的-u选项 它的作

sort 多列排序

sort -n -t . -k1,1 -k2,2 -k3,3 -k4,4 文件   (ip地址排序) 其中n是按数字   也可以是g按数值 t 指定分割符为 . k指定列数    1,1是第一列开始到第一列结束 2,2是第一列开始到第一列结束 3,3是第一列开始到第一列结束 4,4是第一列开始到第一列结束 sort会每列排序完再根据后续的条件调整排序

EasyUI扩展——自定义列排序匹配字段

一些特殊情况下希望实现:单击某些列,但是排序要按照自定义指定另外的列排序 easyui扩展: 如果不写sort属性则按照默认该列的field排序 $.fn.datagrid.defaults.onBeforeLoad = function (e) { var opts = $(this).datagrid("options"); var colopts = $(this).datagrid("getColumnOption", opts.sortName); var

二维数组的列排序

给出一个二维数组,请将这个二维数组按第i列(i从1开始)排序,如果第i列相同,则对相同的行按第i+1列的元素排序,如果第i+1列的元素也相同,则继续比较第i+2列,以此类推,直到最后一列.如果第i列到最后一列都相同,则按原序排列. 实现以下接口: 输入一个m*n 的整数数组,实现按规则排列,返回排列后的数组. 调用者会保证: 比如输入数组为: 1,2,3 2,3,4 2,3,1 1,3,1 按第二列排序: 输出: 1,2,3 2,3,1 1,3,1 2,3,4 分析:从最后一列开始使用稳定的排序

ExtJS4.2 Grid知识点七:显示行号、斑马线效果(奇偶行背景色不一致)、复制单元格文字、禁止点击列排序

本节主要学习ExtJS4.2 Grid显示行号.斑马线效果(奇偶行背景色不一致).复制单元格文字.禁止点击列排序.禁止列头部右侧菜单,示例图片: 在线演示  /  在线演示 主要内容如下: 显示行号 斑马线效果(奇偶行背景颜色不一致) 复制单元格问题 禁止点击列排序 禁止列头部右侧菜单 1.显示行号 在Grid中增加行号列,xtype指定为rownumberer. {header: 'NO',xtype: 'rownumberer',width: 40,sortable: false} 2.斑马

分别使用shell和python实现两列排序

有一个文件1.txt如下,要求使用shell和python实现排序,先按照第一列排序,第一列相同再按照第二列排序,并且输出到另外一个文件2.txt LZdeMacBook-Pro:~ lz$ cat 1.txt 23 d 26 t 12 y 43 h 5 k 12 a shell实现: LZdeMacBook-Pro:~ lz$ sort  -k1,1n -k2,2 1.txt > 2.txt LZdeMacBook-Pro:~ lz$ cat 2.txt 5 k 12 a 12 y 23 d

列排序算法

It is amazing!列排序算法看起来很奇怪,但是它真的可以用来对所有数据排序,只不过需要有一些条件. 列排序算法是用于包含n个元素的矩形数组的排序,这个数组r行s列,满足下面三个条件: 1) r为偶数 2) s为r的因子 3) r大于等于2s2 这里就不去证明这个算法的正确性,证明见算法导论思考题8-7.感觉对于矩阵的问题,很多人第一反应会是 int a[M][N],或者使用int **a. 其实矩阵是一种数据表现形式,类似于最大最小堆,树结构一样,底层上并不是真正在对具象化的图形结构进

python多列排序

python的sort()和sorted()函数可以进行多列排序.在一个文本或者列表有多列时,这是一个很好用的技巧. 首先,看一下待排序的数据 这是一个csv文件,它有6列,我们需要首先对第一列排序,再对第六列排序 46896961,192100485,1,95wf5sm,1863,2014-12-18 15 39716997,265509650,1,94k0ped,6058,2014-11-18 19 40907060,362837862,1,,12819,2014-12-08 04 1184