sort 排序命令
大佬文章,请优先查看!!!
Linux系统提供了 sort
命令来对文本文件内容进行排序。sort
命令可以按行、字段或数字进行排序,并支持各种排序选项,以满足不同的排序需求。
基本语法
sort [选项] [文件]
选项
选项 | 说明 |
---|---|
-r | 逆序排序(降序) |
-n | 按数值进行排序 |
-k 字段 |
按指定的字段进行排序。该参数可指定多个字段,使用逗号分隔。默认字段分隔符为制表符或空格 |
-t 分隔符 |
指定字段的分隔符 |
-u | 去除重复行,仅保留第一次出现的行 |
-f | 忽略大小写进行排序 |
-b | 忽略行首的空白字符进行排序 |
-c | 检查文件是否已经排好序,如果未排序则输出第一个不符合排序顺序的行 |
-f | 忽略大小写进行排序。例如,sort -f file.txt 将忽略行首字母的大小写进行排序 |
-b | 忽略行首的空白字符进行排序 |
-c | 检查文件是否已经排好序,如果未排序则输出第一个不符合排序顺序的行 |
举个🌰
按行排序
sort 命令默认按照字典顺序对每行进行排序。例如,假设有一个名为 file.txt 的文本文件,内容如下:
apple cherry banana
要按字母顺序对文件进行排序,可以运行以下命令:
sort file.txt
运行结果如下:
apple banana cherry
按字段排序
通常情况下,文本文件的每行都包含多个字段,字段之间通过分隔符进行分割(例如制表符或空格)。sort 命令可以按照指定字段进行排序。
假设有一个名为 data.txt 的文本文件,内容如下:
Tom 25 Male Jerry 22 Female Alice 27 Female
要按第二个字段(年龄)进行排序,可以使用 -k 选项指定要排序的字段,并使用 -t 选项指定字段的分隔符(这里是空格):
sort -k 2 -t ' ' data.txt
运行结果如下:
Jerry 22 Female Tom 25 Male Alice 27 Female
数字排序
默认情况下,sort 命令按照字典顺序对数字进行排序。如果需要按照数值大小排序,可以使用 -n 选项。
假设有一个名为 numbers.txt 的文本文件,内容如下:
10 2 100 50
要按照数字大小排序,可以运行以下命令:
sort -n numbers.txt
运行结果如下:
2 10 50 100
逆序排序
默认情况下,sort 命令按升序排序(从小到大)。如果需要按降序排序(从大到小),可以使用 -r 选项。
继续以 numbers.txt 文件为例,要按照逆序进行排序,可以运行以下命令:
sort -n -r numbers.txt
运行结果如下:
100 50 10 2
去除重复行
sort 命令还可以用于去除文本文件中的重复行,只保留第一次出现的行。使用 -u 选项即可实现。
假设有一个名为 names.txt 的文本文件,内容如下:
Tom Jerry Tom Alice Jerry
要去除重复行,可以运行以下命令:
sort -u names.txt
运行结果如下:
Alice Jerry Tom
按照多个字段排序
sort 命令支持按照多个字段进行排序。可以使用多个 -k 选项来指定要排序的字段和排序顺序。例如,假设有一个名为 data.txt 的文本文件,内容如下:
Tom 25 Male Jerry 22 Female Alice 27 Female
要先按性别(第三个字段)降序排序,再按年龄(第二个字段)升序排序,可以运行以下命令:
sort -k 3r -k 2n data.txt
运行结果如下:
Alice 27 Female Jerry 22 Female Tom 25 Male
这里使用 -k 3r 指定按第三个字段降序排序(r 表示逆序),再使用 -k 2n 指定按第二个字段升序排序(n 表示按数值排序)。
忽略前导字符
有时文本文件的每行可能会包含一些前导字符,例如空格或制表符。如果希望在排序时忽略这些前导字符,可以使用 -b 选项。例如,假设有一个名为 file.txt 的文本文件,内容如下:
apple banana cherry
要在排序时忽略前导空格和制表符,可以运行以下命令:
sort -b file.txt
运行结果如下:
apple banana cherry
合并多个文件排序
sort 命令还可以合并多个文件并进行排序。只需将要排序的文件名依次列出即可。例如,假设有两个文件 file1.txt 和 file2.txt,内容分别如下:
=== file1.txt === apple cherry === file2.txt === banana orange
要将两个文件合并后按字典顺序排序,可以运行以下命令:
sort file1.txt file2.txt
运行结果如下:
apple banana cherry orange
合并后的结果是将两个文件的内容整体排序。
从标准输入读取数据排序
除了从文件中读取数据,sort 命令还可以从标准输入读取数据并进行排序。这样可以方便地与其他命令结合使用。例如,要对一组数字进行排序,可以使用管道将其传递给 sort 命令。例如:
echo -e "3\n1\n2" | sort -n
运行结果如下:
1 2 3
这里使用 echo 命令生成一组数字,并通过管道 | 将其传递给 sort 命令进行排序。
本文来自博客园,作者:Lz_蚂蚱,转载请注明原文链接:https://www.cnblogs.com/leizia/p/17899367.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2020-12-13 05-批量插入
2020-12-13 04-操作BLOB类型字段