sort - sort lines of text files

sort命令用于将文本文件内容加以排序。

sort可针对文本文件的内容,以为单位来排序。

语法:

sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

参数:

sort默认无参数,按照ascii码排序,升序,从小到大

  • -n 依照数值的大小排序
  • -r 以相反的顺序来排序。
  • -u,--unique 去除重复行
    • with -c, check for strict ordering; without -c, output only the
      first of an equal run

    • -u参数,取唯一,不管是否为相邻行
    • [root@oldboy oldboy]# sort uniq.txt
      1
      1
      aa
      aa
      bb
      cc
      dd
      www
      www [root@oldboy oldboy]# sort uniq.txt -u
      1
      aa
      bb
      cc
      dd
      www

      sort -u 压缩,唯一

      [root@oldboy oldboy]# uniq uniq.txt
      www
      aa
      bb
      aa
      cc
      dd
      1
      aa

      uniq压缩相邻行

  • -b 忽略每行前面开始出的空格字符。
  • -c 检查文件是否已经按照顺序排序。
    • [root@oldboy oldboy]# cat sort_c.txt
      11
      22
      33
      44
      11
      22
      33
      44
      # 显示第5行的11未按排序要求排序,用于检查排序是否有错误
      [root@oldboy oldboy]# sort -c sort_c.txt
      sort: sort_c.txt:5: disorder: 11

      sort -c检查排序是否ok

        

  • -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
  • -f 排序时,将小写字母视为大写字母。
  • -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
  • -m 将几个排序好的文件进行合并。
  • -M 将前面3个字母依照月份的缩写进行排序。
  • -o<输出文件> 将排序后的结果存入指定的文件。
  • -r 以相反的顺序来排序。
  • -t<分隔字符> 指定排序时所用的栏位分隔字符。
    • -t, --field-separator=SEP
    • 默认的SEP分隔符为空格
    • [root@oldboy oldboy]# sort new.txt
      1-user01
      2-user02
      3-user03
      4-user04
      5-user05
      # 分隔符设置为“-”,取第二列作为排序的条件列,-r倒序
      [root@oldboy oldboy]# sort new.txt -t '-' -k 2 -r
      5-user05
      4-user04
      3-user03
      2-user02
      1-user01

      sort -k 2 指定key,指定-t分隔符,倒序排序

  • -k, --key=POS1[,POS2] 指定起始的排序列

    • -k, --key=POS1[,POS2]
      start a key at POS1 (origin 1), end it at POS2 (default end of line)

  • +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

示例:

# 数据准备
[root@oldboy oldboy]# cat sort_test.txt
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
test
Hello
hello
Welcome
www.baidu.com # 以默认的方式对文件进行排序
[root@oldboy oldboy]# sort sort_test.txt
Hello
Welcome
a
b
c
d
e
f
g
h
hello
i
j
k
l
m
n
o
p
q
r
s
t
test
u
v
w
www.baidu.com
x
y
z

sort默认的排序方式

sort 命令将以默认的方式将文本文件的第一列以ASCII 码的次序排列,并将结果输出到标准输出。

注意,ASCII码的对照表如下:https://baike.baidu.com/item/ASCII/309296?fr=aladdin

[root@oldboy oldboy]# sort sort_test.txt -r
z
y
x
www.baidu.com
w
v
u
test
t
s
r
q
p
o
n
m
l
k
j
i
hello
h
g
f
e
d
c
b
a
Welcome
Hello

sort -r 倒序,从大到小

【Linux常见命令】sort命令的更多相关文章

  1. Linux基础:sort命令总结

    本文只总结一些常用的用法,更详细的说明见man sort和sort --help. sort命令 sort命令用于串联排序指定文件并将结果写到标准输出. sort可以指定按照何种排序规则进行排序,如按 ...

  2. 性能工具之linux常见日志统计分析命令

    引言 我前几天写过的性能工具之linux三剑客awk.grep.sed详解,我们已经详细介绍 linux 三剑客的基本使用,接下来我们看看具体在性能测试领域的运用,本文主要介绍的是在 Tomcat 和 ...

  3. 【转】linux中的sort命令

    转自:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分 ...

  4. Linux常见的Shell命令

    1.具体的shell命令用法可以通过help或man命令进入手册来查询其具体的用法.2.终端本质上对应着linux上的/dev/tty设备,linux的多用户登录就是通过不同的/dev/tty设备完成 ...

  5. Linux常见目录及命令介绍

    一.Linux中常用的目录介绍:     /        -根目录     /bin    -命令保存目录(普通用户亦可读取的命令)     /boot    -启动目录,启动相关文件     /d ...

  6. linux 常见名词及命令(三)

    tar 用于对文件打包压缩或解压. 示例: 打包并压缩文件:tar -czvf 压缩包名.tar.gz 文件名 解压并展开压缩包:tar -zxvf 压缩包名.tar.gz -c 创建压缩文件 -x ...

  7. linux 常见名词及命令(一)

    linux  PK  wondows 稳定且有效率.免费或少许费用.漏洞少且修补快.多任务多用户. 安全的用户及文件权限策略.适合小内核程序的嵌入系统.相对不耗资源. 热门的开源系统 红帽企业系统(R ...

  8. linux 常见名词及命令(五)

    计划任务服务之一次性任务: at <时间> 安排一次性任务 atq 或at -l 查看任务列表 at -c 序号 预览任务与设置环境 atrm 序号 删除任务 安排任务示例: 在23:30 ...

  9. linux 常见名词及命令(六)

    查看软件安装位置 : dpkg -L 软件包名字 ubuntu环境的apache相关命令: 查看是否启动:ps -aux | grep httpd  或者 netstat -an | grep :80 ...

  10. linux 常见名词及命令(四)

    yum仓库的配置 yum仓库的配置文件存放在/etc/yum.repos.d/目录中. 第一步:切换到/etc/yum.repos.d/目录中. 第二步:使用vim编辑器打开一个名为'rhel7.re ...

随机推荐

  1. find的基本查询命令《一》

    一. find的基本查询命令 find命令最常用的是查找某个文件,如: find ./ -name "abc.txt" 则会在当前目录及子目录下查找abc.txt文件 更常用的是查 ...

  2. git基础使用合集

    1.git初始化仓库-git init git init 创建一个.git目录,跟踪管理版本 2.git 添加-git add git add xxx.xxx 添加到暂缓区里 git add * 添加 ...

  3. Visual Studio2000系列版本安装OpenGL可以这么简单!

    是啥 直接上图 [翻译过来]这个库将各种库添加到您的项目中,这些库在x86和x64架构上构建OpenGL应用程序所必需的.包括FreeGLUT,GLFW和GLEW.也就是说,大家常用的几个OpenGL ...

  4. 2017蓝桥杯兴趣小组(C++C组)

    原题:兴趣小组 为丰富同学们的业余文化生活,某高校学生会创办了3个兴趣小组(以下称A组,B组,C组).每个小组的学生名单分别在[A.txt],[B.txt]和[C.txt]中.每个文件中存储的是学生的 ...

  5. ThinkPHP5中raw的作用

    在tp5中,我们一般在模板中输出变量是这样的:{$test} 但是有时候在有些源码中我们可以看到这样的方式:{$test|raw} 这个时候如果你去找手册会发现,全文基本没有提到这个raw的作用. 那 ...

  6. CVPR2020| 阿里达摩院最新力作SA-SSD

    作者:蒋天园 Date:2020-04-16 来源:SA-SSD:阿里达摩院最新3D检测力作(CVPR2020) Brief 来自CVPR2020的研究工作,也是仅仅使用Lidar数据进行3D检测的文 ...

  7. JS入门系列(1)-原型-函数原型

    实例1: 首先定义一个Persion类或者说是函数 var p1 = Persion();:表示,作为普通函数调用 var p2 = new Persion();:表示,作为构造器调用 创建函数之后, ...

  8. leetcode-0001 两数之和

    题目地址:https://leetcode-cn.com/problems/two-sum/ 1.暴力解法 直接双重循环,枚举出所有可能的解,时间复杂度为O(n^2),空间复杂度为O(1) var t ...

  9. 《MySQL实战45讲》学习笔记4——MySQL中InnoDB的索引

    索引是在存储引擎层实现的,且在 MySQL 不同存储引擎中的实现也不同,本篇文章介绍的是 MySQL 的 InnoDB 的索引. 下文将以这张表为例开展. # 创建一个主键为 id 的表,表中有字段 ...

  10. intellJ svn控制错误

    电脑突然蓝屏了,重启打开intellj 后原本好好的项目是可以用intellj更新或者提交的,现在却都不能了,如图: 如上图:svn地址里是空白的,应该显示: 那到底是什么情况呢,就因为电脑崩溃了in ...