返回顶部
首页 > 资讯 > 操作系统 >linux中如何对文本进行高效排序
  • 174
分享到

linux中如何对文本进行高效排序

2023-06-06 00:06:39 174人浏览 薄情痞子
摘要

小编给大家分享一下linux中如何对文本进行高效排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!按照字典顺序排序假如有文本内容test1.txt如下(偷偷问一句

小编给大家分享一下linux中如何对文本进行高效排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

按照字典顺序排序

假如有文本内容test1.txt如下(偷偷问一句:你在使用哪个linux发行版?):

DebianGentooGentooCentosFedoraubuntuKaliredhatArchOpenSuse

现在要对文本内容按照字典升序排序,只需使用下面的命令即可:

sort test1.txt

输出结果如下:

ArchCentOSDebianFedoraGentooGentooKaliopenSuseredhatubuntu

可以看到输出结果按照字典顺序的升序进行了排序。如果需要降序输出只需要使用-r参数,如:

sort -r test1.txt

输出结果如下:

ubunturedhatOpenSuseKaliGentooGentooFedoraDebianCentOSArch

去除重复行

我们看到前面有两行的内容是重复的,即Gentoo行,使用-u参数可以去掉重复的行:
sort -u test1.txt
输出结果如下:

ArchCentOSDebianFedoraGentooKaliOpenSuseredhatubuntu

在输出结果中,重复的Gentoo行被去掉了。

按照数字排序

假设有文本内容test2.txt如下,第一列为市值排名,第二列为公司名称,第三列为公司创建时间:

Google 199810 icbc 19845 tencent 19981 apple 197616 samsung 1938

按照前面的介绍,我们对内容排序结果如下:

10 icbc 198416 samsung 19381 apple 19762 google 19985 tencent 1998

这不对啊,16怎么在1前面呢?很显然这是因为前面的排序都是字典排序,而我们实际需要的是按照数值大小进行排序,因此需要用到-n参数:
sort -n test2.txt
最后的输出结果如下:

1 apple 19762 google 19985 tencent 199810 icbc 198416 samsung 1938

可以看到,最终结果按照市值排名打印出来。

按照指定列排序

假如我们不想按照市值排名排序,而是按照公司名称排序呢?那么就需要按照指定列排序了。这里需要用到两个参数:
-t 指定分隔符,未指定时,默认分隔符为空白
-k 指定列排序
需要按照第二列,公司名称排序,因此排序命令如下:
sort -k 2 test2.txt #默认以空白作为分隔符
sort -k 2 -t ' ' sort2.txt #以空格为分隔符
结果如下:

1 apple 19762 google 199810 icbc 198416 samsung 19385 tencent 1998

可以看到,最后会以第二列,即公司名称为依据排序输出。

以多列为依据排序

假设我们按照公司创建年份排序,如果年份相同,则按照公司名称排序,即分别以第三列,第二列为依据排序:

sort -n -k 3 -k 2 test2.txt

输出结果如下:

16 samsung 19381 apple 197610 icbc 19842 google 19985 tencent 1998

如果要按照年份降序排序,则只需加-r参数即可:

sort -n -k 3r -k 2 test2.txt

输出结果如下:

2 google 19985 tencent 199810 icbc 19841 apple 197616 samsung 1938

按照特定列的特定字符排序

假如我们想要按照公司名称的第二至第三个字符排序,可以使用下面的方式:

sort -t ' ' -k 2.2,2.3 test2.txt

输出结果如下:

16 samsung 193810 icbc 19845 tencent 19982 google 19981 apple 1976

-k 2.2,2.3指定了按照第二列排序,并且是第二列的第二个字符开始,到第三个字符结束。可以看到,由于samsung的第二个字母是a而排在开头。如果是以第二个字符开始,到最后一个字符结束,则用下面的命令即可:

sort -t ' ' -k 2.2 test2.txt

保存排序结果

前面的排序命令仅仅是将排序结果打印到控制台,并没有修改源文件,如果想要将排序结果保存在文件中,需要使用-o参数:

sort test1.txt -o test1.txt #直接修改源文件sort test1.txt -o output.txt #输出到另外一个文件sort test1.txt > output.txt #重定向到output.txt中

如果想将排序结果保存在源文件中,只能使用-o参数,而如果是其他文件,既可以使用-o参数,也可以使用重定向。

检查是否乱序

sort同样也可以用来检查文本内容是否已经是排好序的。
例如:

sort -c test1.txt #打印结果,并告知无序开始的行数sort -C test1.txt #不打印结果,但是命令的返回结果为1

合并已排序的文本

可以使用-m选项来合并已经排好序的文本,但不会重新排序。
例如:

sort -m file1 file2

总结
以上就是使用sort命令对文本进行排序的常见使用方法,更多内容可使用man命令进行查看。常见选项如下:

-r 按照降序排列-n 按照数值大小排列-k 按照指定列排列-t 指定分隔符-u 去重-o 输出结果到文件中

以上是“linux中如何对文本进行高效排序”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网操作系统频道!

--结束END--

本文标题: linux中如何对文本进行高效排序

本文链接: https://lsjlt.com/news/245329.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • linux中如何对文本进行高效排序
    小编给大家分享一下linux中如何对文本进行高效排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!按照字典顺序排序假如有文本内容test1.txt如下(偷偷问一句...
    99+
    2023-06-06
  • Linux下如何对文件进行合并和排序
    这篇文章主要介绍了Linux下如何对文件进行合并和排序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在 Linux上对文件进行合并和排序的方法有很多,但使用哪种就取决于你想怎...
    99+
    2023-06-28
  • vbs中怎么对文本文件内容进行排序
    vbs中怎么对文本文件内容进行排序,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。问:您好,脚本专家!我有一个包含计算机名称列表的文本文件。如何按照字母顺序对该文件进行排序?--...
    99+
    2023-06-08
  • linux怎么对文件中的数据进行排序
    在Linux中,可以使用`sort`命令对文件中的数据进行排序。`sort`命令的基本语法如下:```sort [OPTION].....
    99+
    2023-09-11
    linux
  • Java 中如何对集合进行排序
    Java 中如何对集合进行排序 在 Java 中,集合是一种非常常见的数据结构,它可以用来存储一组元素,而且可以动态地增加或删除元素。在实际的开发中,我们经常需要对集合中的元素进行排序,以便更方便地查...
    99+
    2023-09-25
    java 开发语言
  • SQLite中如何对数据进行排序
    在SQLite中,可以使用ORDER BY子句对数据进行排序。可以在SELECT语句中添加ORDER BY子句,后面跟上要排...
    99+
    2024-04-09
    SQLite
  • Java如何使用Collections.sort对中文进行排序方式
    本篇文章为大家展示了Java如何使用Collections.sort对中文进行排序方式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用Collections.sort对中文进行排序使用collec...
    99+
    2023-06-25
  • 【MySQL】MySQL中如何对数据进行排序
    目录 MySQL中的数据排序一、 排序的基本使用二、 使用列的别名来排序三、 二级排序 MySQL中的数据排序 一、 排序的基本使用 在查询数据时,如果没有使用排序操作,默认情...
    99+
    2023-09-01
    mysql sql 数据库
  • js中如何对json数组进行排序
    目录js对json数组进行排序js根据json数组多个字段排序总结js对json数组进行排序 废话不多说,直接上代码 // 升序排列 function up(a, b) {     ...
    99+
    2023-05-16
    js json数组 json数组进行排序 json数组排序
  • java如何对arraylist中元素进行排序
    这篇文章主要介绍了java如何对arraylist中元素进行排序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。rrayList中的元素进行排序,主要考查的是对util包中的C...
    99+
    2023-05-30
    java arraylist
  • Python中对list进行排序
    很多时候,我们需要对List进行排序,Python提供了两个方法对给定的List L进行排序,方法1.用List的成员函数sort进行排序方法2.用built-in函数sorted进行排序(从2.4开始)这两种方法使用起来差不多,以第一种为...
    99+
    2023-01-31
    中对 Python list
  • MySQL如何对数据进行排序图文详解
    目录一、 排序的基本使用二、 使用列的别名来排序三、 二级排序总结一、 排序的基本使用 在查询数据时,如果没有使用排序操作,默认情况下SQL会按元组添加的顺序来排列查询结果。在SQL...
    99+
    2022-11-13
    mysql数据排序规则 MySQL数据排序 MySQL中排序
  • php如何对数组进行降序排序
    小编给大家分享一下php如何对数组进行降序排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!对数组进行降序排序 - rsort(...
    99+
    2024-04-02
  • php如何对数组进行升序排序
    小编给大家分享一下php如何对数组进行升序排序,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!对数组进行升序排序 - sort()下面的例子按照字母升序对数组 $cars 中的元素进行排序:...
    99+
    2024-04-02
  • SQL Server 中如何对临时表进行排序
    这篇文章给大家介绍SQL Server 中如何对临时表进行排序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在SQL Server 2005/2008中,如果将有序的记录插入临时表,则...
    99+
    2024-04-02
  • 怎么在linux中对awk数组进行排序
    怎么在linux中对awk数组进行排序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码如下:[chengmo@localhost ~]$ awk 'B...
    99+
    2023-06-13
  • Java使用Collections.sort对中文进行排序方式
    目录使用Collections.sort对中文进行排序Collections.sort 排序 注解使用Collections.sort对中文进行排序 使用collections.so...
    99+
    2024-04-02
  • 怎么对Linux上的文件进行合并和排序
    这篇文章主要介绍了怎么对Linux上的文件进行合并和排序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么对Linux上的文件进行合并和排序文章都会有所收获,下面我们一起来看看吧。使用 cat如果你只想将一组文...
    99+
    2023-06-27
  • 在Linux系统中如何使用ls命令按日期对文件进行排序
    ls命令用于列出目录内容,结果可以按几个条件排序,例如按日期,按字母顺序排列的文件名,修改时间,访问时间,版本和文件大小。 在本文中,我将向您展示如何使用linux中的ls命令按日期对文件进行排序。 1)列出具有上次...
    99+
    2022-06-04
    linux ls命令 ls 命令
  • python如何对列表中的元素进行排序
    这篇文章主要介绍了python如何对列表中的元素进行排序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。示例:# sort:排序,对...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作