咱们看到,乱序信息显现的是在/tmp/sort.txt文件中在8行的g处开端乱序。
-n运用纯数字来排序,关于数字,默许情况下是将每位上的数字逐一进行比较排序的,运用该选项将用值来进行排序
哎呀!上面说了这么多了,是不是有点烦琐了。Sort指令的选项许多,咱们就不逐个举例了。下面咱们再介绍两个选项 –t 和 –k。剩下的咱们只介绍其意义。
-t分隔符,将每一行数据依照该选项指定的分隔符分红多个域。默许情况下是运用tab键或许空格符来切割的。
-t和-k一般情况下是一同呈现的。假如只运用-t的话,体系会默许运用切割今后的第一个域内的数据进行排序
通常情况下-k合作-t一同运用,假如独自运用-k的话,那默许的切割符是tab键或许空格符。-k后边指定由哪个域来进行匹配,在一条指令中能够运用多个-k。当第一个-k选项指定的域有重复项的时分再依据第二个-k指定的域,假如还有重复项的话再依据第三个-k指定的域,顺次类推得到最终的成果。默许情况下,假如只要一个-k选项,当有重复项的时分会依据第一个域的字段进行匹配。
field便是指定的第几个域;.start表明从该域的字段的第start个字符开端匹配,默许是1;field.end表明到第end个字符截止。也便是说匹配该域字段的start和end之间的字符。end能够省掉,假如省掉的话表明到该域的结尾。
咱们看上面的成果是不是有较大的收支。再看当第二个字段有相同值的默许情况下是依照第一个域的字段进行匹配的,咱们看site那两行数据,再次依照第一个字段的话domain会在onmpw前面。这个不是咱们想要的成果,咱们想要第二个域的字段持平的时分依照第三个域的字段进行匹配。那就需求用到第二个-k选项了。
如同和上面的成果没有什么区别哦!没错,成果是相同。可是其排序已经是依照第三个域进行排序了,仅仅默许情况下不是依照数值排序的,而是也将数字的每一位依照字符排序,所以10排在了5前面。
咱们看3后边跟了一个n,这个n便是咱们的标识——也就相当于 –n的意思。这儿的标识只对当时组有用。什么意思呢?咱们在上面的比如中看到依据第二个域的字段排序由两组相同的数据,而-k 3n 是将每一组内的数据作为数据源再进行排序。
或许这样说也是有点含糊,用-n来举例的成果不太显着,现在咱们用-r来举例。-r表明的是将排序成果逆序。咱们将上面比如中的 –k 3n 换成-k 3nr。
咱们看成果是不是又不相同了,由于咱们在各组内依照第三个域(-k 3n)排好序今后,经过r标识又将其逆序所以便是上面的成果了。那怎么看其仅仅组内有用呢。看下面的比如
关于sort咱们就介绍到这,上面这些是常用的选项,其它剩下选项能够运用指令’info sort’自行检查。