zoukankan      html  css  js  c++  java
  • sort

    补充说明:sort可针对文本文件的内容,以行为单位来排序。

    参  数:
      -b   忽略每行前面开始出的空格字符。
      -c   检查文件是否已经按照顺序排序。
      -f   排序时,忽略大小写字母。
      -M   将前面3个字母依照月份的缩写进行排序。
      -n   依照数值的大小排序。
      -o<输出文件>   将排序后的结果存入指定的文件。
      -r   以相反的顺序来排序。
      -t<分隔字符>   指定排序时所用的栏位分隔字符。
      -k  选择以哪个区间进行排序。

      -u  在输出行中去除重复行

    $ sort -n  -t ':' -k 2 facebook.txt
    apple:10:2.5
    orange:20:3.4
    banana:30:5.5
    pear:90:2.3

    让facebook.txt按照员工工资降序排序,如果员工人数相同的,则按照公司人数升序排序:


    在-k 3后面偷偷加上了一个小写字母r。
    因为sort默认是按照升序排序的,所以此处需要加上r表示第三个域(员工平均工资)是按照降序排序。
    此处你还可以加上n,就表示对这个域进行排序时,要按照数值大小进行排序,举个例子吧:

    $ sort -t : -k 3nr -k 2n facebook.txt
    baidu :100 :5000
    google:110 :5000
    sohu : 100:4500
    guge : 50 :3000

    只针对公司英文名称的第二个字母进行排序,如果相同的按照员工工资进行降序排序:

    $ sort -t -k 1.2,1.2 -k 3,3nr facebook.txt
    baidu 100 5000
    google 110 5000
    sohu 100 4500
    guge 50 3000

    由于只对第二个字母进行排序,所以我们使用了-k 1.2,1.2的表示方式,表示我们“只”对第二个字母进行排序。
    (如果你问“我使用-k 1.2怎么不行?”,当然不行,因为你省略了End部分,这就意味着你将
    对从第二个字母起到本域最后一个字符为止的字符串进行排序)。对于员工工资进行排序,我们也使用了-k 3,3,这是最准确的表述,
    表示我们“只”对本域进行排序,因为如果你省略了后面的3,就变成了我们“对第3个域开始到最后一个域位置的内容进行排序” 了。

  • 相关阅读:
    【CITE】当类库项目中无法使用Application.StartupPath的时侯 (注:主要是在进行反射读取文件的时候!!)
    设置pictureBox的边框颜色
    怎么在Form1调用Form2中的成员?
    【CITE】DrawImage方法详解(转)
    Python-正则表达式实现计算器功能
    Python-面向对象进阶
    Python基础-封装与扩展、静态方法和类方法
    Python基础-接口与归一化设计、抽象类、继承顺序、子类调用父类,多态与多态性
    Python基础-继承与派生
    Python基础-月考
  • 原文地址:https://www.cnblogs.com/wwxbi/p/4216601.html
Copyright © 2011-2022 走看看