为了顺应当前形势和更好的发展,黑基网已于9月19日正式更名为【安基网】,域名更换为www.safebase.cn,请卸载旧的APP并安装新的APP,给您带来不便,敬请理解!谢谢

黑基Web安全攻防班
安基网 首页 IT技术 网络管理 查看内容

sort命令使用详解

2011-7-22 11:45| 投稿: Linux

摘要:   sort命令总结  功能:排序  语法:sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][...
  sort命令总结  功能:排序  语法:sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]  参数:  -b   忽略每行前面开始出的空格字符。  -d   排序时,处理英文字母、数字及空格字符外,忽略其他的字符。  -f   排序时,将小写字母视为大写字母。  -i   排序时,除了040至176之间的ASCII字符外,忽略其他的字符。  -c   检查文件是否已经按照顺序排序。  -m   将几个排序好的文件进行合并。  -M  前面3个字母依照月份的缩写进行排序。  -n   依照数值的大小排序。  -o<输出文件>   将排序后的结果存入指定的文件。  -r   以相反的顺序来排序。  -t<分隔字符>   指定排序时所用的栏位分隔字符。  -k 指定域  --help   显示帮助。  --version   显示版本信息。  --------------------------------------------------------------------------------------------------[root@Jesse ~]# cat c.txt  7 July  8 August  9 September  10 October  11 November  12 December  1 January  2 February  3 March  4 April  5 May  6 June  [root@Jesse ~]# sort -c c.txt  sort: c.txt:4: disorder: 10 October  //说明未按照某种顺序进行排列,如果什么也不显示,则说明已按某种顺序分类。  --------------------------------------------------------------------------------------------------[root@Jesse ~]# cat a.txt  google 110 5000  baidue 100 5010  gugeee 120 3000  sohuee 100 4500  [root@Jesse ~]# cat b.txt  3 ladygaga 1  5 ladygaga 9  0 ladygaga 5  9 ladygaga 4  6 ladygaga 2  8 ladygaga 3  7 ladygaga 0  1 ladygaga 6  4 ladygaga 7  2 ladygaga 8  [root@Jesse ~]# sort -m a.txt c.txt //将两个文件内容整合到一起  7 July  8 August  9 September  10 October  11 November  12 December  1 January  2 February  3 March  4 April  5 May  6 June  google 110 5000  baidue 100 5010  gugeee 120 3000  sohuee 100 4500  --------------------------------------------------------------------------------------------------进行月份排序  [root@Jesse ~]# cat c.txt  July  August  September  October  November  December  January  February  March  April  May  June  [root@Jesse ~]# sort -M c.txt  January  February  March  April  May  June  July  August  September  October  November  December  --------------------------------------------------------------------------------------------------[root@Jesse ~]# sort -M c.txt -o d.txt  //将内容排序后导入到d.txt这个文件。  --------------------------------------------------------------------------------------------------[root@Jesse ~]# cat e.txt  1  2  3  4  5  6  7  8  [root@Jesse ~]# sort -r e.txt   //逆序进行排列  8  7  6  5  4  3  2  1  --------------------------------------------------------------------------------------------------[root@Jesse ~]# cat a.txt  google 110 5000  baidue 100 5010  gugeee 120 3000  sohuee 100 4500  [root@Jesse ~]# sort -t" " -k 3 a.txt  //出现空格的地方作为第一域进行分类  gugeee 120 3000  sohuee 100 4500  google 110 5000  baidue 100 5010  ########################################################################有关-k 的实例演示  ########################################################################准备工作:  [root@Jesse ~]# cat a.txt  google 110 5000  baidue 100 5000  gugeee 120 3000  sohuee 101 4500  ------------------------------------------------------------------------------------------------按照字母进行排序,注意 -t 后面的引号里需要有一个空格,这里的单引号,双引号都无所谓  [root@Jesse ~]# sort -t" " -k 1 a.txt  baidue 100 5000  google 110 5000  gugeee 120 3000  sohuee 101 4500  [root@Jesse ~]# sort -t' ' -k 1 a.txt  baidue 100 5000  google 110 5000  gugeee 120 3000  sohuee 101 4500  按照以空格为分割域的第二域进行排序  [root@Jesse ~]# sort -t' ' -k 2 a.txt  baidue 100 5000  sohuee 101 4500  google 110 5000  gugeee 120 3000  我们来测试下第二域相同的情况  [root@Jesse ~]# cat a.txt  google 110 5000  baidue 100 5010  gugeee 120 3000  sohuee 100 4500  通过以下实例我们发现,以空格为分割域,第二域相同的时候,第三域是没有任何次序的,如果遇到第二域相同,第三域也要进行排序的时候,我们怎么办呢  [root@Jesse ~]# sort -n -t' ' -k 2 a.txt  baidue 100 5010  sohuee 100 4500  google 110 5000  gugeee 120 3000  看如下演示,如果第二域相同,那么我们将从第三域进行升降处理  [root@Jesse ~]# sort -n -t' ' -k 2 -k 3 a.txt  sohuee 100 4500  baidue 100 5010  google 110 5000  gugeee 120 3000  如果我想让以空格为分割域的第三域进行倒叙排列  [root@Jesse ~]# sort -n -t' ' -k 3r a.txt  baidue 100 5010  google 110 5000  sohuee 100 4500  gugeee 120 3000  如果我想让以空格为分割域的第三域以正序进行排列  [root@Jesse ~]# sort -t' ' -k 3n a.txt  gugeee 120 3000  sohuee 100 4500  google 110 5000  baidue 100 5010  如果第二域有两个数相同,那么我们将以升降来排序  [root@Jesse ~]# sort -t' ' -k 2n -k 3n a.txt  sohuee 100 4500  baidue 100 5010  google 110 5000  gugeee 120 3000  如过只是想从第三个字母起进行排序  [root@Jesse ~]# sort -t' ' -k 1.3 a.txt  gugeee 120 3000  sohuee 100 4500  baidue 100 5010  google 110 5000  如果只想以第一域的第三个字符进行排序:-k 1.3,1.3 表示只以第三个字母进行排序  [root@Jesse ~]# sort -t' ' -k 1.3,1.3 a.txt  gugeee 120 3000  sohuee 100 4500  baidue 100 5010  google 110 5000  n表示进行排序,r表示逆序  [root@Jesse ~]# sort -t" " -k 2nr a.txt  gugeee 120 3000  google 110 5000  baidue 100 5010  sohuee 100 4500  以第二域进行排序,如果遇到重复的,就删除  [root@Jesse ~]# sort -t" " -k 2n -u  a.txt  baidue 100 5010  google 110 5000  gugeee 120 3000

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部