news 2026/9/6 14:02:31

Linux sort命令详解:从文本排序到日志分析实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux sort命令详解:从文本排序到日志分析实战

1. 为什么每个 Linux 使用者都应该掌握 sort

在日常使用 Linux 的过程中,我们经常需要面对各种文本处理任务。比如查看日志时想按照时间排序、分析数据时想找出数值最大的几行、处理配置文件时想去掉重复项……如果每次都靠人工一个个看,效率极低。而sort命令,就是 Linux 系统内置的一个专门用来做排序处理的利器。

1.1 sort 命令是什么

sort是 Linux 系统中最常用的文本处理命令之一,它能够将输入文件中的每一行作为一条记录,按照指定的规则进行排序,然后把排序后的结果输出到标准输出设备(通常是终端)或者指定的文件中。

它和grepawksed一起,被很多运维工程师称为 Linux 文本处理的“四剑客”。其中:

  • grep负责过滤和匹配文本。
  • sed负责对文本进行流式编辑、替换。
  • awk负责格式化处理和报表输出。
  • sort负责排序归类,是数据整理的第一道工序。

1.2 sort 命令解决什么问题

很多场景下,我们拿到的原始数据是杂乱无章的。sort命令解决的问题非常直接:

  • 让数据按照字典顺序、数值大小或者日期先后排列,便于人眼阅读。
  • 配合uniq命令,统计并去除重复数据。
  • 在编写 Shell 脚本时,对数据进行预处理,为后续的awkcut分析做准备。
  • 对日志文件、配置文件、数据表文件进行排序,方便对比不同版本之间的差异。

1.3 常见应用场景

从实际开发和运维的角度来看,sort的典型场景包括:

  • 服务器进程列表按内存或 CPU 占用排序,比如把ps命令的输出交给sort处理。
  • 日志分析时,把接口访问耗时从高到低排列,找出最耗时的接口。
  • 统计文件中每个单词出现的次数,sortuniq组合使用是最经典的做法。
  • 对用户列表、IP 列表、域名列表去重排序,生成干净的清单。
  • 在 CI/CD 脚本里,对构建产物清单做排序校验。

可以这样说:只要 Linux 上有文本数据需要整理,sort几乎总是第一个被想到的命令。它虽然简单,却是日常运维和开发中不可或缺的基础能力。

2. 环境准备与基础概念

在进行正式操作之前,先确认一下运行环境。本文的示例均在常见的 Linux 发行版下运行,无论你是使用 Ubuntu、CentOS、Debian,还是国产的麒麟操作系统、统信 UOS,sort命令都是系统自带的,不需要额外安装。

2.1 查看版本与环境

在终端中输入以下命令,可以查看当前系统使用的sort版本:

sort --version

输出结果大致如下:

sort (GNU coreutils) 8.32 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Mike Haertel and Paul Eggert.

需要注意的是,不同发行版自带的 coreutils 版本会有差异,导致某些选项的行为细节略有不同。但本文要讲的核心选项,在所有主流 Linux 系统上都能正常使用,所以版本差异不影响你跟着操作。

2.2 准备一份练习数据

为了后面演示方便,我先创建一份示例数据文件。打开终端,执行下面的命令:

mkdir -p ~/sort-demo && cd ~/sort-demo cat > fruits.txt << 'EOF' banana Apple cherry apple Banana date elderberry EOF

这里创建了一个名为fruits.txt的文件,里面有几行水果名称,故意混合了大小写,方便后面演示排序规则。

再创建一个数值型的数据文件:

cat > scores.txt << 'EOF' 90 88 100 75 102 23 45 EOF

这份数据里有 100 和 102 这种多位数,用来演示默认字典排序和数值排序的区别再合适不过。

3. sort 命令核心语法与常用选项拆解

3.1 基础语法

sort命令的基本语法如下:

sort [选项] [文件...]

如果不指定文件,或者文件名为-sort会从标准输入读取数据。这也意味着sort经常配合管道符使用。

最简单的写法:

sort fruits.txt

这条命令会按照每行字符的字典顺序,把fruits.txt内容输出到屏幕,但不会修改原文件。输出结果默认是:

Apple Banana apple banana cherry date elderberry

注意这里有两个细节:

  1. 大写字母排在前面,小写字母排在后面。因为默认排序规则按照 ASCII 码比较,大写 A(65)小于小写 a(97)。
  2. 原文件没有被修改。sort默认只输出结果,不改变源文件。

3.2 最常用的选项:-n、-r、-k、-t、-u

我把sort的高频选项整理成了下表,建议收藏备用:

选项完整写法作用
-n--numeric-sort按照数值大小排序
-r--reverse逆向排序,从大到小
-k--key=KEYDEF指定排序的字段列
-t--field-separator=SEP指定字段分隔符
-u--unique去重并排序,只保留一行
-f--ignore-case忽略大小写
-b--ignore-leading-blanks忽略每行开头的空白字符
-o--output=FILE把结果输出到指定文件
-c--check检查文件是否已经排序
-m--merge合并多个已排序文件
-h--human-numeric-sort按照人类可读的数字排序,支持 K、M、G 等单位
-R--random-sort随机排序
-s--stable稳定排序,启用最后一次比较作为排序依据

下面重点讲几个最容易踩坑的选项。

3.3 字典排序和数值排序的区别

这是初学者最容易搞混的地方。默认情况下,sort是按照字典顺序(也就是字符顺序)排序的。现在对上文的scores.txt执行默认排序:

sort scores.txt

输出:

100 102 23 45 75 88 90

可以看到,100排在了23前面。因为字典排序是逐位比较字符的,1的 ASCII 码是 49,2的 ASCII 码是 50,4的是 52,所以以1开头的数总是排在前面。这显然不是我们期望的数值排序。

加上-n选项后:

sort -n scores.txt

输出:

23 45 75 88 90 100 102

这才是真正的按数值大小排序。所以,排序对象是数值时一定要记得加-n

3.4 反向排序

-r选项用于从大到小排列。比如查看哪个分数最高:

sort -n -r scores.txt

输出:

102 100 90 88 75 45 23

在真实场景中,sort -nr经常会跟其他命令搭配。比如查看当前目录下文件大小的排行:

ls -l | sort -nr -k5

这条命令先列出文件详情,然后按照第五列(文件大小)数值从大到小排序。后面会详细讲-k

3.5 去重排序

-u选项可以在排序过程中去除重复行。和单独使用uniq不同,sort -u是全局去重,不需要像uniq那样要求重复行必须相邻。

先准备一份有重复数据的文件:

cat > ips.txt << 'EOF' 192.168.1.10 192.168.1.2 192.168.1.10 192.168.1.3 192.168.1.2 10.0.0.1 EOF

执行:

sort -u ips.txt

输出:

10.0.0.1 192.168.1.10 192.168.1.2 192.168.1.3

这里去掉了重复的两行 IP。如果你先跑sort ips.txt再用uniq,效果也是一样的,但sort -u一条命令更简洁。

3.6 忽略大小写排序

默认排序规则区分大小写,想让大小写不敏感的排序,可以用-f选项:

sort -f fruits.txt

输出:

Apple apple Banana banana cherry date elderberry

可以看到,大小写被合并处理了,Apple 和 apple 被当成同一个单词参与排序。这个选项在排序日志中的人名、URL、文件名时非常有用。

3.7 指定排序字段:-k 和 -t

sort最强大的地方,在于它可以按照指定的列进行排序,而不只是整行比较。这需要配合两个选项:

  • -t指定分隔符,告诉sort每行数据用什么字符来分成多个字段。
  • -k指定按第几个字段排序。

举个例子,假设有一个员工信息文件,每行包含姓名、部门和薪资,用冒号分隔:

cat > employees.txt << 'EOF' Alice:Engineering:9500 Bob:Sales:8700 Cindy:Engineering:12000 David:Sales:6500 Eva:HR:7800 Frank:HR:9200 EOF

现在想按薪资从高到低排列,可以这样写:

sort -t ':' -k 3 -nr employees.txt

解释一下这条命令:

  • -t ':'表示字段分隔符是冒号。
  • -k 3表示使用第三个字段,也就是薪资列作为排序依据。
  • -nr表示数值排序并且反向排列。

输出:

Cindy:Engineering:12000 Alice:Engineering:9500 Frank:HR:9200 Bob:Sales:8700 David:Sales:6500 Eva:HR:7800

如果想先按部门排序,同部门内再按薪资排序,可以写:

sort -t ':' -k 2 -k 3 -n employees.txt

这里连续写了两个-k,说明第一排序关键字是部门,第二排序关键字是薪资。结果如下:

Alice:Engineering:9500 Cindy:Engineering:12000 Eva:HR:7800 Frank:HR:9200 Bob:Sales:8700 David:Sales:6500

-k的完整语法比看起来更灵活,比如-k 2,2表示从第二列开始比较到第二列结束,也就是只取第二列作为排序键。后面的,和第二个数字用来限定区间的起始和结束位置。如果只写-k 2,则表示从第二列开始一直到行尾都作为排序键。在处理复杂文本时,这个细节会直接影响排序结果。

3.8 按人类可读数字排序:-h

在查看磁盘占用、文件大小时,输出来往往是这种格式:

2.1G 350M 890K 1.2G

如果直接sort -n,由于带单位字符,结果会不正确。这时应该使用-h

cat > sizes.txt << 'EOF' 2.1G 350M 890K 1.2G EOF sort -h sizes.txt

输出:

890K 350M 1.2G 2.1G

可以看到,-h能正确理解 K、M、G 等单位,按实际大小排序。这非常适用于du -hls -lh输出的场景:

du -h --max-depth=1 /var | sort -hr

这条命令会找出/var目录下占用空间最大的子目录,是排查磁盘占用问题的高频组合。

3.9 输出到文件:-o

sort默认把结果输出到屏幕,如果想保存结果到文件,很多人会想到>重定向:

sort -n scores.txt > sorted_scores.txt

这样写没问题。但有一个特殊场景需要注意:如果你想覆盖原文件,比如执行sort -n scores.txt > scores.txt,这是一个危险操作。因为 shell 会先打开并清空scores.txt,然后sort再去读取时,文件已经变成空文件了。

安全的做法是使用-o选项:

sort -n scores.txt -o scores.txt

sort内部会先完成所有排序,再写入文件,所以不会丢失数据。日常处理配置文件、临时文件时,建议养成使用-o的习惯。

3.10 检查是否已排序:-c

在处理大规模数据时,有时候需要判断一个文件是否已经排好序,这时可以用-c

sort -c scores.txt

如果文件已经排序,命令会静默退出,退出码为 0。如果没排序,会输出类似:

sort: scores.txt:3: disorder: 75

并且退出码为 1。这个选项在编写脚本校验数据时很有用。带-n检查数值排序也是常见写法:

sort -n -c scores.txt

3.11 合并已排序文件:-m

如果手上有多个已经排好序的文件,想把它们合并成一个有序文件,用sort -m比直接sort效率更高,因为它不需要重新对所有数据排序,只需要归并。

cat > a.txt << 'EOF' apple banana EOF cat > b.txt << 'EOF' cherry date EOF sort -m a.txt b.txt

输出:

apple banana cherry date

注意:-m要求输入文件本身已经有序,否则结果不正确。

3.12 随机排序:-R

-R选项会打乱数据顺序,产生随机排序结果。比如随机抽取列表、随机分配任务时可以使用:

sort -R ips.txt

由于每次执行结果都不相同,如果你需要一个可复现的随机顺序,可以加上--random-source指定随机源文件,不展开讨论,知道这个选项即可。

4. 综合实战:使用 sort 完成日志分析与数据统计

接下来,我们把已经学过的选项组合起来,完成一个常见的实战任务:分析服务器访问日志中的 IP 访问次数,找出访问次数最多的前 5 个 IP。

4.1 准备一份模拟日志

为了方便演示,先创建一份 Nginx 风格的访问日志片段:

cat > access.log << 'EOF' 192.168.1.10 - - [10/Oct/2024:10:10:10 +0800] "GET /index.html HTTP/1.1" 200 1234 192.168.1.2 - - [10/Oct/2024:10:10:11 +0800] "GET /api/user HTTP/1.1" 200 256 192.168.1.10 - - [10/Oct/2024:10:10:12 +0800] "GET /favicon.ico HTTP/1.1" 404 55 10.0.0.1 - - [10/Oct/2024:10:10:13 +0800] "GET /index.html HTTP/1.1" 200 1234 192.168.1.3 - - [10/Oct/2024:10:10:14 +0800] "POST /api/login HTTP/1.1" 302 0 192.168.1.10 - - [10/Oct/2024:10:10:15 +0800] "GET /api/user HTTP/1.1" 200 256 192.168.1.2 - - [10/Oct/2024:10:10:16 +0800] "GET /index.html HTTP/1.1" 200 1234 10.0.0.1 - - [10/Oct/2024:10:10:17 +0800] "GET /api/login HTTP/1.1" 200 128 192.168.1.3 - - [10/Oct/2024:10:10:18 +0800] "GET /index.html HTTP/1.1" 200 1234 192.168.1.10 - - [10/Oct/2024:10:10:19 +0800] "GET /index.html HTTP/1.1" 200 1234 EOF

日志中每一行的第一个字段就是访问者的 IP 地址。

4.2 第一步:提取 IP 列表

使用awkcut提取第一列:

awk '{print $1}' access.log

输出:

192.168.1.10 192.168.1.2 192.168.1.10 10.0.0.1 192.168.1.3 192.168.1.10 192.168.1.2 10.0.0.1 192.168.1.3 192.168.1.10

4.3 第二步:排序

把提取出来的 IP 交给sort,让相同的 IP 聚集在一起:

awk '{print $1}' access.log | sort

排序后的结果,相同 IP 就会相邻排列。这一步是整个统计流程中必不可少的前置操作,因为后面要用的uniq -c只能统计相邻的重复行。

4.4 第三步:统计次数

uniq -c会统计每行重复出现的次数:

awk '{print $1}' access.log | sort | uniq -c

输出:

3 10.0.0.1 4 192.168.1.10 2 192.168.1.2 2 192.168.1.3

此时每行的第一列是出现次数,第二列是 IP 地址。

4.5 第四步:按次数排序

uniq -c输出的次数带有前导空格,需要忽略空格并按数值排序,最后取前 5:

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -5

分析一下这里为什么用sort -nr

  • -nuniq -c输出的计数按照数值而非字典顺序排序。
  • -r从高到低排列。
  • head -5只显示前 5 行即可。

输出:

4 192.168.1.10 3 10.0.0.1 2 192.168.1.2 2 192.168.1.3

这样,我们就成功找出了访问量最高的 IP。这个命令组合是运维排查、安全分析里的经典流水线,请务必记住。

4.6 扩展:统计接口访问耗时 Top N

假设有一个接口耗时日志,每一行的格式是接口名 耗时(毫秒)

cat > latency.log << 'EOF' /api/user 123 /api/login 34 /api/user 456 /api/index 89 /api/search 234 /api/upload 1200 /api/user 78 /api/login 567 EOF

要找出耗时最高的接口和耗时:

sort -k 2 -nr latency.log | head -3

输出:

/api/upload 1200 /api/login 567 /api/user 456

-k 2是让 sort 只针对第二列进行排序,而-nr负责以数值方式降序排列。这一条命令就能快速定位性能瓶颈,非常实用。

4.7 实战小结

通过上面的示例,可以看到sort在 Shell 数据处理中扮演的承上启下角色。单独用sort可能效果有限,但一旦和awkuniqheadtail等命令组合成管道,就能完成非常复杂的数据分析任务。

5. 常见问题与排查思路

在实际使用过程中,大家经常会在sort上遇到一些容易迷惑的问题。下面整理了几个高频问题,并结合排查思路进行分析。

5.1 常见问题对照表

问题现象常见原因解决思路
数字排序不对,100 排在 23 前面没有使用-n选项,默认按字典进行字符排序数值排序时加-n
去重没生效uniq只处理相邻重复行,数据未排序就执行了uniqsortuniq,或直接使用sort -u
排序结果和预期字段不一致-k指定的列号不对,或分隔符设置错误-t明确分隔符,确认字段从 1 开始编号
大小写排序结果不友好默认 ASCII 码排序,大写字母排在小写字母前面-f忽略大小写
输出到原文件后文件为空使用了>重定向覆盖原文件,导致 shell 先清空了文件使用-o选项安全输出
带单位的数字排序错误sort -n不识别 K、M、G 单位使用-h选项
多列排序结果不符合预期多个-k时没有指定列区间,导致排序键一直延伸到行尾使用-k 2,2这样的区间限制语法

5.2 详细排查:为什么uniq去不掉重复

这是最典型的陷阱之一。先看反例:

cat ips.txt | uniq

由于uniq只能去除相邻的重复行,而ips.txt中的重复 IP 并不相邻,所以去重失败。

正确做法是先排序让重复行相邻:

sort ips.txt | uniq

或者直接一条命令:

sort -u ips.txt

5.3 详细排查:-k字段到底怎么数

很多朋友写-k时,不知道字段应该如何统计。这里有一个快速验证方法。

假设文件内容是一行:

Alice:Engineering:9500

执行:

echo "Alice:Engineering:9500" | awk -F ':' '{print $1, $2, $3}'

输出:

Alice Engineering 9500

第 1 列是Alice,第 2 列是Engineering,第 3 列是9500sort里的-k 3对应的就是第三列。如果分隔符不是空格,-k要和-t一起使用,否则sort默认按空格或制表符切分字段。

5.4 详细排查:空白字符导致排序异常

有些数据文件,每行开头或中间有多余的空格,直接排序会导致结果不符合直觉。比如:

cat > spaces.txt << 'EOF' apple banana cherry EOF sort spaces.txt

由于空格参与的 ASCII 码排序,空格(32)会排在任何字母(65 以上)之前。结果里带空格的apple可能排在banana前面。

处理方法是加-b,忽略行首空白:

sort -b spaces.txt

如果空格在字段中间,建议用-t指定分隔符,或者提前用sed清理多余空格。

5.5 详细排查:-o>的区别

简单说:

  • >重定向是 shell 的功能,会先创建/截断目标文件,再运行命令。如果目标文件就是输入文件,会让输入文件被清空。
  • -osort自己的选项,sort会先读取全部数据、完成排序,最后再安全地写入目标文件。

所以当你要把排序结果写回原文件时,请使用:

sort -o file.txt file.txt

而不是:

sort file.txt > file.txt

5.6 详细排查:中文字符排序乱序

遇到中文内容时,sort的行为取决于系统的 locale 环境。用locale命令可以查看当前语言环境:

echo "LANG=$LANG"

如果LANG=zh_CN.UTF-8sort会尝试按拼音顺序对中文排序;如果LANG=C,则会按照字节顺序排序,结果通常不是人们预期的拼音序或笔画序。这是很多中文数据处理场景下sort“结果不对”的常见根源。解决方案是在命令前显式指定语言环境:

LANG=zh_CN.UTF-8 sort names.txt LANG=C.UTF-8 sort names.txt

前者按拼音,后者按字节。具体使用哪种,取决于你的业务需要。

6. 最佳实践与工程建议

sort虽然简单,但要在真实项目中稳定、高效地使用,还是有一些经验值得沉淀。

6.1 优先级:先 sort 再 uniq

在统计场景中,非常推荐把sortuniq配对使用。但请注意执行顺序:一定是先sort,再uniq。原因在于uniq只能合并相邻的重复行,不排序的重复行是分散在各处的。

推荐写法:

sort input.txt | uniq -c | sort -nr

如果只需要去重结果,直接sort -u一步到位。

6.2 写脚本时注意临时文件与性能

sort在只处理小文件时速度飞快,但在对几个 GB 甚至更大的日志文件进行排序时,内存占用会明显上升。sort内部使用外部排序算法,当数据量超过内存限制时,会在临时目录中生成中间文件,默认临时目录是/tmp

如果需要处理海量数据,建议:

  • 使用-T指定一个有足够空间的临时目录,避免/tmp容量不足。
  • 尽量在脚本里用管道串行处理,不要中间生成大量重复临时文件。
  • 能筛选就先筛选,比如先grep过滤再sort,让参与排序的数据量更小。

示例:

sort -T /data/tmp -n huge_file.txt -o sorted_file.txt

6.3 对生产日志做排序分析时,先确认分隔符

真实日志格式通常比较复杂,字段之间存在多个空格或者制表符。比如:

2024-10-10 10:10:10 INFO 192.168.1.10 request_id=123456 cost=340ms

这种情况下,使用默认空格分割时,多个连续空格会被忽略吗?不会。sort默认把连续的空白字符当成一个字段分隔符,但不同版本的 coreutils 行为略有差异。最稳妥的做法是先用awk预处理,提取出目标列,再交给sort

awk '{for(i=1;i<=NF;i++) if($i ~ /^cost=/) {gsub("cost=","",$i); print $i}}' app.log | sort -nr | head -10

这样抽取和排序分离,代码可读性和健壮性都会更好。

6.4 排序稳定性和多关键字排序

在某些场景下,排序稳定性很重要。所谓稳定性,是指当两个记录排序键相等时,它们的原有先后顺序是否保持不变。sort默认并不是稳定排序,因为最后一次比较的规则可能会覆盖前面的结果。

如果你希望保持输入顺序作为最后的兜底排序规则,并开启稳定排序,可以加-s选项:

sort -s -t ':' -k 2 data.txt

比如先按第二个字段排序,字段相同的行,保持它们在原文件中的相对顺序。这在处理表格数据、保留原始序号时非常有用。

更常见的做法是多关键字排序:

sort -t ':' -k 2,2 -k 3,3n employees.txt

这里-k 2,2明确表示只按第 2 列排,-k 3,3n表示第 3 列按数值排。这样表达意图更清晰,也避免排序键延伸到行尾导致意外结果。

6.5 注意安全边界:覆盖源文件

前文已经提到,sort默认不会修改源文件,有些人会误以为>是安全的。但在 Shell 中,sort file.txt > file.txt会先清空文件再执行 sort,造成数据丢失。这是一个非常危险的操作。

类似的风险还出现在其他命令上,比如cut file.txt > file.txtgrep pattern file.txt > file.txt。无论使用哪个命令,凡是输出重定向到源文件,都必须格外小心。建议统一使用-o完成回写,或者输出到临时文件后再用mv替换原文件。

6.6 利用 sort 做配置对比与校验

在发布配置、更新依赖清单时,经常需要比较两个文件的差异。如果不排序直接diff,会因为行顺序不同产生大量无效差异。这时可以先排序再对比:

sort old_list.txt > old_list.sorted sort new_list.txt > new_list.sorted diff old_list.sorted new_list.sorted

更简洁的写法:

diff <(sort old_list.txt) <(sort new_list.txt)

这种方式在核对包清单、IP 白名单、域名列表时效率极高。

6.7 和 find 搭配:按文件名排序输出

find默认输出顺序可能不固定,如果希望文件名有序,可以直接管道到sort

find /data/config -type f | sort

在脚本里这样写,可以有效避免因为文件顺序不确定导致的结果波动。

6.8 日常高频组合命令速查

下面几条是实际工作中几乎每天都会用到的组合命令,建议保存下来:

# 统计访问量最高的 10 个 IP awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10 # 统计出现次数最多的 10 个单词 tr ' ' '\n' < words.txt | sort | uniq -c | sort -nr | head -10 # 查看磁盘占用最大的 10 个目录 du -h --max-depth=1 /data 2>/dev/null | sort -hr | head -10 # 查看当前目录下最大的文件 ls -l | sort -nr -k5 | head -5 # 对 IP 列表去重并排序 sort -u ips.txt # 检查文件是否已经按数值排序 sort -n -c data.txt

通过多次练习这些组合,你会慢慢形成一种管道思维:任何文本数据,都可以拆解为“提取 → 排序 → 统计 → 展示”四个步骤。

7. 总结与进一步学习方向

本文围绕 Linux 系统中的sort命令,从基础概念讲到高频选项,再到实际登录日志分析、耗时排序、去重统计等综合案例,最后整理了常见问题和工程经验。本质上,sort的用法可以归纳成四个关键点:

  • 默认字典排序,按数值排序要加-n
  • 多字段排序用-t指定分隔符,用-k指定列。
  • 去重推荐sort -u,统计推荐sort | uniq -c | sort -nr
  • 写回源文件时使用-o而不是>重定向。

接下来,你可以进一步学习这些相关内容:

  • uniq命令的去重与计数技巧。
  • awk的字段切割与格式化输出。
  • cuttrpaste等文本处理命令。
  • Shell 管道、进程替换与重定向机制。
  • diffcomm等文件比较工具。

在真实项目中,sort往往是数据处理流水线的第一环。掌握好它的排序行为、字段规则和边界情况,再配合awk和管道,你就能在 Linux 终端里完成很多看似复杂的数据分析任务。希望本文对你有所帮助,建议打开终端实际操作一遍,印象会更加深刻。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 14:01:50

火电机组建模与仿真:基于Matlab/Simulink的600MW机组实现全解析

简介&#xff1a;这是基于Matlab/Simulink的大型火电机组建模与仿真研究毕业论文PDF&#xff0c;面向热能动力、电气工程及自动化等专业学生与相关科研人员&#xff0c;适合需要系统理解火电机组建模思路与仿真应用的读者。PDF文档共1个文件&#xff0c;包体仅5.16MB&#xff0…

作者头像 李华
网站建设 2026/9/6 14:01:18

微服务链路追踪实战:从traceId到全链路排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 14:00:05

量子计算为何比超算快1亿亿倍:从量子叠加与并行性解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 13:57:21

API实测对比DeepSeek与GPT:中文推理、代码生成与模型选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 13:56:00

MCN机构AI脚本批量生成实战:从工具选型到SOP全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 13:55:53

采埃孚与英伟达联合开发车载AI系统:技术架构与量产挑战解析

简介&#xff1a;这是一份关于采埃孚&#xff08;ZF&#xff09;与英伟达&#xff08;NVIDIA&#xff09;联合开发人工智能系统的技术资料&#xff0c;PDF格式&#xff0c;适用于自动驾驶、智能系统及汽车电子领域的研究人员、工程师和学习者&#xff0c;可作为系统开发与行业合…

作者头像 李华