您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

Linux中10大常用命令之sort使用案例

时间:2020-05-11 09:41:40  来源:  作者:

1. 前言

linux中的sort命令用于对文本文件的内容进行排序。本教程向您展示了sort命令的一些基本示例。

Linux中的sort命令sort命令以有用的方式排列文本行。这个简单的工具可以帮助您快速地从命令行对信息进行排序。

语法:

sort [options] <filename>

你应该注意几件事:

当您使用没有任何选项的排序时,将强制执行默认规则。它有助于理解默认规则以避免意外结果。在使用sort时,原始文件和数据是安全的。输入的结果只显示在命令行上。但是,也可以根据具体需求,将输出结果指定保存为单独的文件。稍后再详细介绍。sort最初设计用于ASCII字符。我没有对大量不同编码进行测试,但是不同的编码可能会产生意想不到的结果。

Linux中10大常用命令之sort使用案例

Linux中10大常用命令之sort使用案例

 

2. `sort`命令使用案例

Linux中10大常用命令之sort使用案例

sort命令使用案例

 

sort命令中的默认规则这些是使用sort命令时的默认规则。前几个例子将说明如何管理这些优先级。然后,我们将查看特定选项。

  • 数字 > 字母
  • 小写 > 大写

2.1 `sort`命令使用规则

让我向您展示一些排序命令的例子,您可以在各种情况下使用它们。

  1. 按字母顺序排序
    默认的排序命令可以方便地按字母顺序查看信息。不需要任何选项,即使大小写字母混合的情况下,A-Z排序也可以按预期工作。

我将使用一个名为filename.txt的示例文本文件,如果您查看该文件的内容,您将看到以下内容:

MX Linux
Manjaro
Mint
elementary
Ubuntu
sort filename.txt

以下是按字母顺序排列的输出结果:

elementary
Manjaro
Mint
MX Linux
Ubuntu
Linux中10大常用命令之sort使用案例

Linux使用sort命令对文本内容进行排序

 

2.2 按数值排序[选项-n]

让我们使用上一个例子中使用的列表,并按数字顺序排序。如果你想知道,根据distrowatch.com网站,该榜单反映了最受欢迎的Linux发行版(2019年7月)。

我将修改文件的内容,使项目编号,但顺序如下所示。

1. MX Linux
4. elementary
2. Manjaro
5. Ubuntu
3. Mint
sort filename.txt

排序后得到:

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu

看起来不错。但是,您能依靠这种方法来准确地排列数据吗?可能不会。让我们看另一个例子来找出原因。

这是我的新建的演示文本:

1
5
10
3
5
2
60
23
432
21

现在,如果我使用sort命令没有任何选项,这是我得到的:

sort order.txt
1
10
2
21
23
3
432
5
5
60

注意:数字仅按其开头(第一个字符)的数字排序。

当您添加-n选项时,现在正在计算字符串的数值,而不仅仅是第一个字符。现在,您可以在下面看到我们的列表得到了适当的排序。

sort order.txt -n

现在你将有正确排序的输出结果:

1
2
3
5
5
10
21
23
60
432

2.3 反向排序[选项-r]

对于这个,我将再次使用我们的发行版列表。它将对任何内容进行反向排序。

sort filename.txt -r

反向排序

5. Ubuntu
4. elementary
3. Mint
2. Manjaro
1. MX Linux

2.4 随机排序[选项-R]

如果您在尝试反向排序参数时不小心按了shift键,您可能会得到一些奇怪的结果。-R按随机顺序重新排列输出。

sort filename.txt -R

以下是随机排列的结果:

4. elementary
1. MX Linux
2. Manjaro
5. Ubuntu
3. Mint

2.5 按月份排序[选项-M]

sort还内置了按月份排序的功能。它可以基于特定地区的信息识别多种格式。

下面是这个例子中的文本文件示例:

March
Feb
February
April
August
July
June
November
October
December
May
September
1
4
3
6
01/05/19
01/10/19
02/06/18

使用-M选项按月排序的输出结果:

sort filename.txt -M

下面是输出结果:

01/05/19
01/10/19
02/06/18
1
3
4
6
Jan
Feb
February
March
April
May
June
July
August
September
October
November
December

2.6 将排序后的结果保存到另一个文件中

如前所述,默认情况下sort不会更改原始文件。如果需要保存已排序的内容,可以这样做。

对于本例,我创建了一个新文件,我希望打印已排序的信息并将其保存为filename_sort .txt。

注意:如果您试图将排序后的数据定向到同一个文件,它将擦除文件的内容。

sort filename.txt -n > filename_sorted.txt

如果使用cat命令查看输出文件,这将是它的内容:

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu

2.7 排序特定列[选项-k]

如果文件中有一个表,可以使用-k选项指定要排序的列。我添加了一些任意数字作为第三列,并将显示按每一列排序的输出。我已经包括了几个例子来展示各种可能的输出。选项在列号后面添加。

1. MX Linux 100
2. Manjaro 400
3. Mint 300
4. elementary 500
5. Ubuntu 200
sort filename.txt -k 2

将文件中的第二列内容按字母顺序:

4. elementary 500
2. Manjaro 400
3. Mint 300
1. MX Linux 100
5. Ubuntu 200
sort filename.txt -k 3n

这将根据第三列的数字对文本进行排序。

1. MX Linux 100
5. Ubuntu 200
3. Mint 300
2. Manjaro 400
4. elementary 500
sort filename.txt -k 3nr

与上面的命令相同,只是排序顺序颠倒了。

4. elementary 500
2. Manjaro 400
3. Mint 300
5. Ubuntu 200
1. MX Linux 100

2.8 排序并删除重复项[选项-u]

如果您有一个具有内容重复的文件,-u选项将使您的工作更轻松。请记住,排序不会对原始数据文件进行更改。我选择创建一个新文件,其中只包含重复的项。在下面,您将看到命令运行后的输入和每个文件的内容。

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
sort filename.txt -u > filename_duplicates.txt

这里是输出文件排序和去重的结果。

1. MX Linux 
2. Manjaro 
3. Mint 
4. elementary 
5. Ubuntu

2.9 排序时忽略大小写[选项-f]

许多运行sort的现代发行版在默认情况下会实现忽略大小写。如果没有,添加-f选项将产生预期的结果。

sort filename.txt -f

下面是sort命令忽略大小写的输出:

alpha
alPHa
Alpha
ALpha
beta
Beta
BEta
BETA

2.10 按人类格式数值排序[选项-h]

这个选项允许比较字母数字值,比如1k(即1000)。

sort filename.txt -h

这是排序后的输出:

10.0
100
1000.0
1k

3. 结论

我希望本教程能够帮助您了解Linux中sort命令的基本用法。sort命令通常与Linux中的uniq命令结合使用,用于对文本文件进行唯一的排序。

如果你有一些更好的应用安全,请留言给大家分享吧。

本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:https://www.linuxrumen.com/cyml/1685.html

点击了解更多,快速查看更多的技术文章列表



Tags:Linux 命令   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
1.cd:进入目录进入hgfs目录:cd /mnt/hgfs/返回上级:cd ..返回上两级: cd ../..2.cp:复制单纯复制: cp 文件夹或文件名 要复制到的位置,比如:cp hgfs /urs/复制加重命名:cp 文件夹或文...【详细内容】
2020-07-14  Tags: Linux 命令  点击:(69)  评论:(0)  加入收藏
在 Linux 中,有非常多的命令可以让我们用来执行各种各样的任务。当我们想要像使用文件浏览器一样列出一个目录下的内容时,大家第一时间想到的是 ls 命令。但只有 ls 命令能实...【详细内容】
2020-07-14  Tags: Linux 命令  点击:(114)  评论:(0)  加入收藏
原文地址:http://wiki.100ask.org第001节_linux命令入门演示前面我们讲解了在Ubuntu图形界面下怎么新建目录、新建文件等等。来提个问题:除了这个图形界面,Ubuntu下面有没有其...【详细内容】
2020-07-04  Tags: Linux 命令  点击:(63)  评论:(0)  加入收藏
1. 前言Linux中的sort命令用于对文本文件的内容进行排序。本教程向您展示了sort命令的一些基本示例。Linux中的sort命令sort命令以有用的方式排列文本行。这个简单的工具可...【详细内容】
2020-05-11  Tags: Linux 命令  点击:(82)  评论:(0)  加入收藏
1.命令行日常快捷键如下的快捷方式非常有用,能够极大的提升你的工作效率:CTRL + U 剪切光标前的内容CTRL + K 剪切光标至行末的内容CTRL + Y 粘贴CTRL...【详细内容】
2020-05-01  Tags: Linux 命令  点击:(70)  评论:(0)  加入收藏
01uptime$ uptime 23:51:26 up 21:31, 1 user, load average: 30.02, 26.43, 19.0212该命令可以大致的看出计算机的整体负载情况,load average后的数字分别表示计算机在1min...【详细内容】
2020-04-25  Tags: Linux 命令  点击:(54)  评论:(0)  加入收藏
当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每天的非负...【详细内容】
2019-09-05  Tags: Linux 命令  点击:(177)  评论:(0)  加入收藏
1. linux系统管理命令adduser功能说明:新增用户帐号。 语  法:adduser 补充说明:在Slackware中,adduser指令是个script程序,利用交谈的方式取得输入的用户帐号资料,然后再交由...【详细内容】
2019-07-24  Tags: Linux 命令  点击:(283)  评论:(0)  加入收藏
▌简易百科推荐
作用显示文件或目录所占用的磁盘空间使用命令格式du [option] 文件/目录命令功能显示文件或目录所占用的磁盘空间一些写法的区别du -sh xxx 显示总目录的大小,但是不会列出...【详细内容】
2021-12-23  mitsuhide1992    Tags:du命令   点击:(12)  评论:(0)  加入收藏
什么是linux内核linux就像是一个哲学的最佳实践。如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪地说着:“linux的美丽简直让人沉醉。”我只能说是我处在linux学习的修炼...【详细内容】
2021-12-23  linux上的码农    Tags:linux内核   点击:(15)  评论:(0)  加入收藏
本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(dae...【详细内容】
2021-12-23  软件架构    Tags:systemctl   点击:(14)  评论:(0)  加入收藏
mv是move的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。命令格式mv [选项] 源文件或者目录 目标文件或者目录命令功能mv命令中第二个参数类型的不同(...【详细内容】
2021-12-17  入门小站    Tags:mv命令   点击:(23)  评论:(0)  加入收藏
大数据技术AI Flink/Spark/Hadoop/数仓,数据分析、面试,源码解读等干货学习资料 98篇原创内容 -->公众号 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处...【详细内容】
2021-12-17  仙风道骨的宝石骑士    Tags:sed命令   点击:(22)  评论:(0)  加入收藏
Node是个啥?  写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性地拿了下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段...【详细内容】
2021-12-15  linux上的码农    Tags:node   点击:(25)  评论:(0)  加入收藏
难道只有我一个人觉得Ubuntu的unity桌面非常好用吗?最近把台式机上面的Ubuntu 16.04格式化了,装了黑苹果用了一周,不得不说,MacOS确实很精美,软件生态比Linux丰富很多,比Windows简...【详细内容】
2021-12-14  地球末日村    Tags:ubuntu   点击:(40)  评论:(0)  加入收藏
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行net...【详细内容】
2021-12-13  窥镜天    Tags:Linux netstat   点击:(28)  评论:(0)  加入收藏
对于较多数量的文件描述符的监听无论是select还是poll系统调用都显得捉襟见肘,poll每次都需要将所有的文件描述符复制到内核,内核本身不会对这些文件描述符加以保存,这样的设计...【详细内容】
2021-12-13  深度Linux    Tags:Linux   点击:(19)  评论:(0)  加入收藏
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范...【详细内容】
2021-12-10  架构驿站    Tags:eBPF   点击:(29)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条