| 关键词: 排序 nbsp Jesse root 100 txt gugeee google baidue 5000 |
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 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|