zoukankan      html  css  js  c++  java
  • Shell:sort工具

    简介

    sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出或重定向输出到指定文件。

    语法

    sort (options) 参数

    选项 说明
    -n number,依照数值的大小排序
    -r reverse, 以相反的顺序来排序
    -t 分隔字符 设置排序时所用的分隔字符, 默认空格是分隔符
    -k 指定需要排序的列
    -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
    -f 排序时,将小写字母视为大写字母
    -b 忽略每行前面开始出的空格字符
    -o 输出文件 将排序后的结果存入指定的文件
    -u 意味着是唯一的(unique),输出的结果是去完重了的
    -m 将几个排序好的文件进行合并

    参数:指定待排序的文件列表

    案例

    准备一个文件

    vi sort.txt
    
    张三 99
    李四 100
    王五 88
    二哈 90
    赵六 78
    java 60
    

    按照“ ”空格分割后的第2列数字升序排序。

    sort -t " " -k2n,2 sort.txt
    

    image-20210709153758252

    按照“ ”空格分割后的第2列数字降序排序。

    sort -t " " -k2nr,2 sort.txt
    

    image-20210709154137201

    将降序结果保存到文件

    sort -t " " -k2nr,2 -o sort2.txt sort.txt
    

    image-20210709154249546

    先按照“ ”空格分割后的, 然后,按照第2列数字升序排序, 最后对所有列去重

     sort -t " " -k2n,2 -uk1,2 sort.txt
    

    image-20210709154347474

    多列排序

    准备数据:

    vi sort3.txt
    
    公司A,部门A,3
    公司A,部门B,0
    公司A,部门C,10
    公司A,部门D,9
    公司B,部门A,30
    公司B,部门B,40
    公司B,部门C,43
    公司B,部门D,1
    公司C,部门A,30
    公司C,部门B,9
    公司C,部门C,100
    公司C,部门D,80
    公司C,部门E,60
    

    要求: 以","分割先对第一列字符串升序, 再对第3列数字降序

    sort -t "," -k1,1 -k3nr,3 sort3.txt
    

    image-20210709154521643

    总结

    能够使用sort对字符串升序或降序排序

    字符串升序: sort -kstart,end 文件

    字符串降序: sort -kstartr,end 文件

    能够使用sort 对数字升序或降序

    数字升序: sort -kstartn,end 文件

    数字降序: sort -kstartnr,end 文件

    能够使用sort 对多列进行排序

    sort -kstart[nr],end -kstart[nr],end ... 文件

  • 相关阅读:
    vue使用watch 观察路由变化,重新获取内容
    Intellij IDEA 最新旗舰版注册激活破解(2018亲测,可用)
    前端开发浏览器兼容问题
    基于Docker搭建MySQL主从复制
    js获取计算后的样式表
    js对象取值的两种方式
    js中的style与jQuery中的css
    js页面加载函数
    代码中jndi数据源的支持
    Oracle中的sid与servicename
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/14990911.html
Copyright © 2011-2022 走看看